Bcnet

tipos de datos

Por enrique ()


Vars

Tipo de datos accesibles como de lectura y escritura desde cualquier parte de los bloques.

El valor Puede cambiar durante el parseo del bloque.

Cuando una var es creada fuera de una 'función' (comando #fn: nombre_fun; ) solo es visible para esa función, y a su vez las vars creadas afuera de la función no son accesibles para ella.

Las vars pueden ser reescritas dinamicamente en el parseo del bloque.

Los vars no persisten mas allá del bloque donde fueron creadas.

Cons

Tipo de dato constante, o sea: no puede ser cambiado después de creado.

Son visibles por fuera y dentro del las 'funciones' a diferencias del tipo var, o sea son globales.

Para definir cons hay varios comandos y la diferencia entre ellos radica en el instante de tiempo en que el parser las definirá:

#static: un tipo de constante que se define ANTES de parsear el bloque.

cons: un valor constante que se define una sola vez cuando se parsea un bloque.

En Bcnet es obligatorio algunas cons para cada bloque:

#static: netName, nombre_red;

#static: blockId, num_id; el id 1 es considerado un bloque GENESIS

el #prot: mainHome; es optativo y sirve para cambiar de bloque GENESIS.

Prots

Es un tipo de var protegida que se crea o cambia solo en modo protegido.

Hspaces

Espacios

cons, var y prot: son espacios (arrays) en la MAC donde se guardar cada tipo de dato de igual nombre.

hspaces: Hash, add (o pubkey) u otra tipo de etiquetas pueden ser definidas como espacios (arrays)

Dentro de ellas se pueden definir prots ( vars, cons publicas o solo privadas ?¿?)

ejemplo:

#setSpace: adcffg1234fdhc345vc3; //un nuevo espacio

[mesaje@var] = "hola mundo"; una var

[alias@cons] = soy_yo; una const

[coinamoun@prot] = 100; un prot

NO -> ////////[mywallet@priv] = 100; un prot

NO?? -> [myfunction@func] = funtion: myfunction;#var: lotengo, TRUE; endFunction:myfunction;