NXTER.ORG

Lotería en la Blockchain de Nxt programada en Golang

En mi primer artículo hice una introducción teórica de la blockchain, de lo que puede aportar para tu proyecto de software y los conceptos básicos para interactuar con la blockchain de Nxt en PHP.

Hoy voy a presentar un pequeño programa de lotería escrito en Go.

Requisitos previos:
Golang (testado con Go 1.6.2)
NRS 1.10.1 (https://bitbucket.org/JeanLucPicard/nxt/downloads/)

Este programa es completamente funcional y ejecuta un sorteo de lotería todos los domingos [1]. Originalmente fue escrito en PHP, las dos fuentes están disponibles para su descarga desde el Data Cloud de Nxt [2].

Lógica de la aplicación

Los boletos enviados por los usuarios en mensajes adjuntos son el suministro de datos para esta aplicación.

Un jugador de la lotería envía 10 NXT a la cuenta de la lotería adjuntando un mensaje público no encriptado con una secuencia de 5 números, entre el 0 y el 30, separados por comas. El mensaje adjunto tiene que ser público para que las recompensas sean auditables usando la blockchain.

La app hace una llamada al servidor NXT para que le proporcione todas las transacciones desde la cuenta de la lotería, clasificándola y seleccionando únicamente las transacciones válidas para así crear un trozo de mapa (conjunto multidimensional en PHP) de todas las cuentas de los jugadores y de sus cadenas de números.Esto también calcula la suma total, de Nxt, a pagar a los jugadores calculando la suma total de todos los boletos validados.

La app, una vez que ha recibido todos los datos válidos, ejecuta 3 rondas de lotería. Cada una de esas rondas recibe una porción, de la suma total disponible para los pagos, a repartir entre los ganadores. En la ronda de 5, la aplicación encuentra los usuario que han adivinado correctamente los 5 números y envía las recompensas. En la ronda 4, la aplicación hace lo mismo para los usuarios que han adivinado 4 números, el monto restante de los boletos participantes es ahora menor que la del ganador(es) de la ronda 5. Se repite lo mismo para la ronda 3.

Esta es la esencia de como funciona la aplicación.

Un poco más sobre el funcionamiento interno

Para cada una de las tres rondas, la lotería genera secuencias de 5 números y las compara con las cadenas de números de los boletos hasta que encuentra uno o más ganadores. Se puede decir que la lotería “fuerza” encontrar una secuencia ganadora del boleto(s).

Con un número limitado de usuarios esto parece ser la única manera sensata para ejecutar una lotería y no tener que recoger y guardar un premio gordo durante meses y/o años.

Vamos a echar un vistazo a la función que genera la secuencia de los 5 números y devuelve una matriz de ellos a la función de llamada. Esta función se invoca un promedio de cientos de miles de veces para encontrar la secuencia de 5 números en una de las entradas cuando tenemos un número muy limitado de participantes. Se tarda una fracción de segundo. En PHP se necesita un poquito más de tiempo (uno o dos segundos), aunque el rendimiento de PHP 7 es realmente bueno.

func genFive(seed string) [5]int {
   var r [5]int
   seedInt, _ := strconv.Atoi(seed)
   d := false
   for a := offset; a < offset+5; a++ { 
      rand.Seed(int64(seedInt + offset)) 
      var dup [31]int 
      d = false 
      r[0] = rand.Intn(31) 
      r[1] = rand.Intn(31) 
      r[2] = rand.Intn(31) 
      r[3] = rand.Intn(31) 
      r[4] = rand.Intn(31) 
      for _, v := range r { 
         dup[v]++ 
      } 
      for k, _ := range dup { 
         if dup[k] > 1 {
            d = true
         }
      }
      offset = offset + 5
      if d == false {
         return r
      }
   }
   return r
}

Una característica importante de la lotería en la blockchain es que tiene que ser completamente transparente.
Todo el mundo debe poder validar que los resultados de la lotería no han sido alterados. Una solución lógica y simple a esto es generar secuencias de números con una semilla determinista.

El problema con las semillas deterministas es que, si se sabe de antemano, las secuencias de números se puede predecir y , a se podría llegar a hacer trampas en la lotería. Para hacer frente a este problema volvemos de nuevo a la Blockchain de NXT, para encontrar una fuente de semilla con la función getSeed().

func getSeed() (string, string) {
 type BlockchainStatus struct {
    NumberOfBlocks int `json:"numberOfBlocks"`
 }
 var status BlockchainStatus
 if seedBlockOutput, b := 
sendQuery("requestType=getBlockchainStatus", 
true); 
b != false { if err := 
json.Unmarshal([]byte(seedBlockOutput), &status); 
err != nil {
     fmt.Println(err)
   }
  }
 seedBlockHeight := 
strconv.Itoa(status.NumberOfBlocks - 11)

 type BlockId struct {
  Block string `json:"block"`
 }
 var block BlockId
 if seedBlockId, b := 
sendQuery("requestType=getBlockId&height="
+seedBlockHeight, true); b != false {
if err := json.Unmarshal([]byte(seedBlockId), 
&block); err != nil {
         fmt.Println(err)
    }
  }
 seed := block.Block[len(block.Block)-5:]
 return seed, seedBlockHeight
}

La app se ejecuta cada domingo a las 18:00 UTC.

Lo primero que esto hace en la función getSeed() es ir a buscar la identificación del bloque que se generó 10 bloques antes del inicio de la aplicación (como se puede ver en la copia local de la blockchain en el nodo de la lotería) y obtener los últimos 5 dígitos de la ID del bloque como semilla. Debido a la latencia de la red y las reorganizaciones ocasionales de la blockchain (de 1 a 3 bloques) el nodo de la lotería puede que no vea la misma información que los otros nodos. El número 10 para obtener el bloque de la semilla fue escogido por la razón que debemos estar razonablemente seguros que este bloque no será reorganizado.

Puede afirmarse que existe la posibilidad teórica de que pueda predecirse el identificador del bloque. En mi opinión, las posibilidades de que esto suceda son muy bajas, pero dejo a los lectores que lo debatan y decidan por ellos mismos.

Ahora que la App tiene su propia semilla, puede realizar su función de manera que los usuarios no necesiten confiar en el organizador de la lotería.

El código fuente “Go” no incluye la rutina de verificación de los resultados anteriores.
El código fuente “PHP” lo tiene, es totalmente funcional y se puede utilizar para verificar, de manera independiente, todos los resultados anteriores con las semillas deterministas de la blockchain.

Para “Go” yo uso la función de enviar y retornar solicitudes al servidor Nxt.

func sendQuery(Query string, Active bool) 
(output string, b bool) {
   output = ""
   b = false
   if Active == false {
      output = "Function disabled"
      return
   }
   body := strings.NewReader(Query)
   req, err := http.NewRequest("POST", 
"http://127.0.0.1:7876/nxt", body)
   if err != nil {
      output = fmt.Sprintf("%s", err)
      return
   }
   req.Header.Set("Content-Type", 
"application/x-www-form-urlencoded")

   resp, err := http.DefaultClient.Do(req)
   if err != nil {
      output = fmt.Sprintf("%s", err)
      return
   }
   bo, err := ioutil.ReadAll(resp.Body)
   defer resp.Body.Close()
   output = fmt.Sprintf("%s", bo)
   match, _ := 
regexp.MatchString(".*errorDescription.*", 
output)
   if match == true {
      fileHandle, _ := 
os.OpenFile("./error.log", os.O_APPEND, 0666)
      writer := bufio.NewWriter(fileHandle)
      defer fileHandle.Close()
      fmt.Fprintln(writer, output)
      writer.Flush()
      return
   }
   b = true
   return
}

Los resultados son recibidos como una cadena JSON y necesitan estar ordenados con una estructura apropiada.

validPlayers := make([]map[string]string, 0)

lotteryAccount := "NXT-YXC4-RB92-F6MQ-2ZRA6"

type Attachment struct {
   Message       string `json:"message"`
   MessageIsText bool   `json:"messageIsText"`
}

type Transaction struct {
   Timestamp   int        `json:"timestamp"`
   AmountNQT   string     `json:"amountNQT"`
   ID          string     `json:"transaction"`
   SenderRS    string     `json:"senderRS"`
   RecipientRS string     `json:"recipientRS"`
   Attached    Attachment `json:"attachment"`
}

type Response struct {
   Transactions []Transaction 
`json:"transactions"`
}
Query := 
"requestType=getBlockchainTransactions&account=" +
lotteryAccount + 
"&type=0&subtype=0&executedOnly=true"

if v, a := sendQuery(Query, true); a == true {
   var transactions Response
   if err := json.Unmarshal([]byte(v), 
&transactions); err != nil {
      fmt.Println(err)
   }

 p := 0
 for k, _ := range transactions.Transactions {
    // code to check tickets for validity.
    // if transaction satisfies all criteria 
    // add it to the slice of valid tickets.
		
    validPlayers = append(validPlayers, 
make(map[string]string))
    validPlayers[p][txSender] = lotteryNumbers
    p++
			
   }
}

Ahora que “validPlayers” tiene todas las entradas correctas podemos iniciar el juego.

process() recibe un número entero (5, 4, o 3) y otros parámetros, incluyendo validPlayers y ejecuta tres rondas de la lotería. Se hace una llamada a la función getWinners(), que se llama genFive() para generar secuencias de números hasta que se encuentre al menos un ganador. getWinners() devuelve los resultados a process() y este es el encargado de: enviar la recompensa, eliminar el boleto ganador y devolver las entradas restantes a main() para rondas posteriores. Hay una función auxiliar denominada preparePlayers() que recrea validPlayers sin los espacios vacíos liberados por las entradas eliminadas.

Animo a todos los programadores que programen en el blockchain NXT. Es muy sencillo gracias al enlace API de todas sus funcionalidades del núcleo. https://nxtwiki.org/wiki/The_Nxt_API

Mi próxima aplicación será probablemente una aplicación de votación, con registros de votos inmutables y guardados en la blockchain. ¿Cree usted que una aplicación como esta puede resultar útil en el mundo moderno? Por cierto, Nxt tiene incorporado su propio sistema de votación. Es muy fácil olvidar lo que Nxt tiene, porque dispone de muchas características que son accesibles a través de la API, que se encuentra amablemente programada por los desarrolladores del núcleo de Nxt para favorecer su uso. Puedes ‘mínar’ tus primeras monedas NXT para enviar las transacciones al proyecto del nodo de la suerte que se ejecuta en un nodo público, acude a nxtforum.org y encontrarás la manera.
Por favor, dejen sus sugerencias y comentarios.

 


1. Lotería en nxtforum.org.

2. Para acceder al Nxt Data Cloud (Nube de datos de Nxt), descargue e instale el NRS (Nxt Reference Software 1.10.1) y busque la palabra clave lottery. Puedes descargar el código fuente desde cualquier servidor Nxt con las API abierta, por ejemplo:

Go-> http://23.94.134.161:7876/nxt?requestType=downloadTaggedData&transaction=7872865106538381099&retrieve=true PHP: http://23.94.134.161:7876/nxt?requestType=downloadTaggedData&transaction=13031806327722095646&retrieve=true

DE VUELTA AL POST.

Programando en la Blockchain de Nxt por diversión y para obtener ganancias

Las cadenas de bloques o blockchains son útiles para múltiples aplicaciones, permitiendo llegar a una audiencia global y reforzando la infraestructura interna de una compañía. Una blockchain es una base de datos distribuida, dónde una copia de esta cadena de bloques está almacenada en cada uno de los nodos de una red entre pares (red peer-to-peer o p2p). Esta redundancia extrema podría ser considerada ineficiente pero, por favor, déjame que te explique brevemente un poco de teoría sobre las blockchains.

Puesto que cada nodo valida todas las transacciones almacenadas en la blockchain y dado que las transacciones pasadas no pueden ser deshechas ni alteradas como sucede en los tradicionales Sistemas de Gestión de Bases de Datos Relacionales (RDBMS por sus siglas en inglés), esta redundancia convierte a la blockchain en “inmutable”, siendo este uno de los grandes valores de las cadenas de bloques. La inmutabilidad de la información es algo que las bases de datos tradicionales no pueden proporcionar. Puede que necesites, o no, esta inmutabilidad de los datos, así como una una confirmación, sin tener que confiar en terceros, de que los datos no han sido alterados.

En este tutorial presupongo que esto es lo que necesitas.

Una de las cadenas de bloques más versátiles y flexibles es la blockchain de Nxt (https://nxt.org). Cuenta con más de un centenar de llamadas API https://nxtwiki.org/wiki/The_Nxt_API.

En esta ocasión te voy a mostrarlos conceptos básicos para programas en la blockchain de Nxt. Sólo voy a usar dos llamadas API en este tutorial. Dado que existen más de un centenar de llamadas API posibles, las oportunidades para los programadores no tienen límite.

Lógica de aplicación

Un cliente de una compañía o un empleado de una organización sube un archivo a través de un formulario web.

El archivo es renombrado para dotarlo de un nombre único y es almacenado en algún lugar del servidor.

Un año más tarde el cliente / empleado necesita verificar, usando la blockchain de Nxt, que el archivo no ha sido alterado. Por ejemplo, esto puede ser necesario por motivos legales. No tiene porque ser sólamente archivos. A los memorandos internos de la compañía se les puede aplicar un algoritmo hash y ser incorporados a la base de datos, para poder ser verificados en una futura auditoría.

Nxt nos permite enviar y almacenar mensajes arbitrarios (M.A.) en su cadena de bloques.

Cada transacción en la blockchain acarrea una tasa o fee. Si el tamaño de la transacción es grande, podría ser caro. Afortunadamente Nxt tiene un subtipo de M.A. llamado mensaje podable. Estos mensajes son “podados” o eliminados pasados 90 días, lo que los hace más baratos. También sería posible recuperar estos mensajes pasados 90 días a partir de los Nodos de Archivo.

El tamaño máximo de un mensaje arbitrario en la blockchain de Nxt es de aproximadamente 42Kb, el tamaño de un bloque. Un mensaje podable de 1KB cuesta 1 NXT (0,03$). 1KB es suficiente para almacenar el hash de un archivo y este será nuestro coste final para almacenar permanentemente un hash en la inmutable y distribuida cadena de bloques de Nxt.

Tan pronto cómo el cliente sube el archivo yo creo un hash del tipo SHA256 del archivo y lo almaceno este hash en la base de datos del servidor de la organización. Por sencillez yo he elegido SQlite, pero puedes usar Mysql, Postgresql, Oracle. Usaré la extensión Objetos de Datos de PHP (PDO por sus siglas en inglés) para acceder a la base de datos SQlite en PHP.

Cuando no utilizamos la base de datos inmutable (blockchain), el archivo puede ser modificado, almacenarse en la base de datos el nuevo hash del archivo modificado, haciendo difícil demostrar que el archivo era el mismo que en un principio.

La blockchain viene al rescate

Cada mensaje podable se puede recuperar desde los nodos de archivo. Cada registro de la blockchain es inmutable. Puedes estar seguro de que el hash del archivo que subiste hace un año será el mismo cuando lo descargues de la cadena de bloques. Todo lo que necesitas hacer es compararlo con el hash del RBDMS interno de la organización.

Prerrequisitos:

PHP con curl, json y algún tipo de extensión de la base de datos (yo uso sqlite3). Un servidor web es opcional, puedes utilizar php-cli. Java 8 (Oracle o OpenJDK para ejecutar Nxt). Software de Referencia Nxt: https://nxtforum.org/nrs-releases/nrs-v1-10-1/.

Instala el Software de Referencia Nxt (NRS por sus siglas en inglés. Dependiendo del contexto se le llama indistintamente Cliente Nxt o Servidor Nxt) y crea una cuenta. Dótala con unas pocas monedas. Puedes intercambiar Bitcoin por Nxt en un servicio de exchange como https://shapeshift.io o intercámbialas directamente con otros usuarios en https://nxtforum.org. También es posible “minar” algunos NXT gratis como recompensa por tener un nodo: http://test.nxter.org/the-forging-bounty-lottery-campaign-will-pay-5-million-in-rewards-to-forgers-and-nxt-nodes/.

Primero creamos una base de datos sencilla para nuestra aplicación, nada extraordinario, si necesitas almacenar más información puedes añadir más columnas. A mí me gusta utilizar el navegador de bases de datos (DB browser) para SQLite de http://sqlitebrowser.org.

Vamos a crear una base de datos vacía llamada ‘files.db’ y la guardamos en /home/lurker10/phptutorial/files.db

Usando el DB browser para SQLite crea la siguiente tabla:

CREATE TABLE "files" (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`txid` TEXT,
`hash` TEXT,
`uploadtime` TEXT,
`filename` TEXT
)

‘txid’ es el campo para almacenar el id de la transacción que recibimos de Nxt cuando la transacción es aceptada. Es único. ‘hash’ es el hash sha256 del archivo.

En este tutorial me voy a saltar la parte del código de subida de archivos para hacerlo más breve.

Vamos a suponer que el archivo ya ha sido subido y almacenado en el servidor web. Definimos la variable para la ubicación del archivo en el código:

$uploadDir = "/home/lurker10/phptutorial/tmp/";
$fileName = "copy12345.tar";

Por defecto, el servidor Nxt recibe las solicitudes API en el puerto 7876. Si lo estás ejecutando en la misma máquina que tu código php, tu código debe enviar solicitudes a http://127.0.0.1:7876/nxt

Las otras variables importantes son la contraseña de la cuenta de Nxt que has creado y dotado de fondos previamente, así como la cuenta del receptor.

Puedes enviarte un mensaje a ti mismo, puesto que el receptor puede ser tu misma cuenta.

$host = "http://127.0.0.1:7876/nxt";
$secretPhrase = "tu contraseña";
$recipientID = "NXT-XXXX-XXXX-XXXX-XXXXX";

La siguiente parte del código es la función que envía la consulta usando curl en una solicitud POST.

Para hacer una solicitud debemos definir las variables $payload y $payload_string y después alimentarlas para sendRequest(). Es posible ejecutar el Nxt Server sobre HTTPS y usar curl para verificar el certificado SSL, pero para hacer esta app más sencilla hemos desactivado la verificación SSL en la conexión curl.

Otro punto de interés es la descripción de $error, con descodificado json desde la respuesta del servidor.

Si hay un problema con la solicitud (“No hay fondos suficientes” en tu cuenta cuando el saldo es cero), tienes que añadir una rutina para el manejo de los errores. Voy a omitir esto también. Para esta app asumo que el servidor responde como corresponde, y devuelve la respuesta a la aplicación para su posterior procesado.

function sendRequest($host, $payload, $payload_string) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 10000);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 10000);
curl_setopt($ch, CURLOPT_POST, count($payload));
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload_string);
$output = curl_exec($ch);
$curl_error = curl_error($ch);
curl_close($ch);
$errorDescription = trim(@json_decode($output)->errorDescription);
if ($errorDescription != "") { // perform error handling; return false; }
return $output;
}

Puesto que este archivo ya ha sido subido, creo un hash a sha256 del archivo y su marca de tiempo (timestamp):

$fileHash = hash_file("sha256", $uploadDir.$fileName);
$txTime = time();

Usaré PDO para trabajar con la base de datos.

Abre la base de datos e inserta una nueva entrada.

No sabemos el txid (identificador de transacción) hasta que hablamos con el servidor Nxt, que nos lo puede dar cuando la transacción ha sido aceptada en la red Nxt, así que por el momento insertar null para el txid.

$pdo = new PDO('sqlite:/home/lurker10/phptutorial/files.db');
$sql = "INSERT INTO files (txid, hash, uploadtime, filename)
VALUES (null, '$fileHash', '$txTime', '$fileName')";
$result = $pdo->exec($sql);

A continuación una solicitud para el envío al servidor Nxt.

Esta solicitud en particular es “sendMessage”. Puedes encontrar muchas más solicitudes con las que interactuar con la blockchain y sus parámetros obligatorios y opcionales en:

https://nxtwiki.org/wiki/The_Nxt_API.

Como ya he dicho antes, la fee por transacción es de 1NXT. 1 NXT = 100,000,000 NQT (nanoquantos).

1 NQTes la unidad más pequeña con la que se puede denominar a Nxt, similar a 1 satoshi en Bitcon.

El servidor Nxt acepta la fee en NQT, así que pagamos exactamente 100 millones de NQT (0,03$).

El parámetro “broadcast” se puede cambiar a false, en cuyo caso recibirás  ‘transactionBytes’ en la respuesta, que puede ser emitida a la red más adelante usando la petición ‘broadcastTransaction’. Pero en esta ocasión lo he fijado en ‘true’  para emitir la transacción instantáneamente.

Recuerda dotar de urlencode() al mensaje. Yo inserto el nombre de archivo en el mensaje separado del hash con una columna.

$payload = array(
"requestType" => "sendMessage",
"recipient" => $recipientID,
"secretPhrase" => urlencode($secretPhrase),
"feeNQT" => 100000000,
"deadline" => 1440,
"broadcast" => "true",
"message" => urlencode($fileName . ":" . $fileHash),
"messageIsPrunable" => "true"
);
$payload_string = "";
foreach ($payload as $key => $value) {
$payload_string .= $key . "=" . $value . "&";
}
rtrim($payload_string, "&");

Envía la petición al servidor NXT usando la función sendRequest():

$output = sendRequest($host, $payload, $payload_string);

y decodifica la respuesta JSON del servidor para obtener el identificador de la transacción:

if ($output != false) {
$txId = json_decode($output)->transaction;
}

Ahora que tenemos una respuesta positiva de la transacción aceptada y su ID es conocido, vamos a actualizar el registro en la base de datos local:

$lastId = $pdo->lastInsertId();
$sql = "UPDATE files SET txid = '$txId' where id = '$lastId'";
$result = $pdo->exec($sql);

Opcionalmente podemos proporcionar estos links a los clientes para consultas futuras y para demostrar que el hash ha sido subido:

echo "NXT Transaction ID: " . $txId . ",
JSON response";
echo "

Usa estos links para verificar el hash Sha256 del archivo guardado en tu base de datos local en lugar de un registro permanente en la blockchain de Nxt:

" . $fileHash;

Opcionalmente puedes enviarles por email a los clientes el $txId que podrán utilizar en un futuro para verificar el hash o, de algún otro modo más, proporcionales información acerca de como en un futuro recuperar información del hash de la base de datos propia y compararla con el hash almacenado en la blockchain, por el timestamp o por otro criterio.

Esta app no incluye autenticación del usuario. Normalmente el cliente o usuario de un servicio de intranet será capaz de ver sus archivos después de haberse autentificado en el sitio.

Esta aplicación también asume que la aplicación de verificación está fuera del alcance del que mantiene la base de datos interna, para evitar engaños en los datos de los resultados de verificación.

Ahora el registro es almacenado en la base de datos de la compañía. Muestra el registro de la base de datos para confirmar que se encuentra allí:

$sth = $pdo->prepare("SELECT id, txid, hash, uploadtime, filename FROM files ORDER BY id DESC");
$sth->execute();
$result = $sth->fetch(PDO::FETCH_OBJ);
if ($result != false) {
var_dump($result);
}

La aplicación de verificación

Para usar la verificación por hash el cliente tiene que tener el ID de la transacción en la blockchain de Nxt aprobada por ellos cuando la transacción fue enviada a la blockchain de Nxt.

Supongamos que el cliente la tiene, almacenada en el email o recuperada de algún otro modo. Aquí está:

$txId = "111111111111111111";

Vamos a ver lo que nuestra base de datos propia tiene para el hash del archivo. Busca y guarda en $hashInDb.

$pdo = new PDO('sqlite:/home/lurker10/phptutorial/files.db');
$sth = $pdo->prepare("SELECT hash FROM files where txid = '$txId'");
$sth->execute();
$result = $sth->fetch(PDO::FETCH_OBJ);
if ($result != false) {
$hashInDb = $result->hash;
}

Envía una petición al servidor NXT y busca toda la información almacenada en la blockchain de Nxt para transacciones con ese ID.

$payload = array (
"requestType" => "getTransaction",
"transaction" => $txId
);
$payload_string = "";
foreach ($payload as $key => $value) {
$payload_string .= $key . "=" . $value . "&";
}
rtrim($payload_string, "&");

$output = sendRequest($host, $payload, $payload_string);

Decodifica la respuesta JSON y extrae el campo añadido dónde se almacena el hash.

En la primera parte de la app nosotros almacenamos el nombre del archivo separado del hash con una columna. Ahora extraemos sólo la porción correspondiente al hash del mensaje arbitrario

$attachmentPlainData = json_decode($output)->attachment->message;
$hashInBlockchain = explode(":", $attachmentPlainData)[1];

Y compara lo que tenemos en la base de datos de la compañía con lo que fue almacenado hace 1 año en la blockchain de Nxt:

if ($hashInDb == $hashInBlockchain)
echo "Hashes are identical";
else
echo "Hashes are not identical";

NXT-crypto-developer

La campaña “The Forging Bounty Lottery” pagará 5 millones en recompensas

Nxteros, ¡será mejor que empecéis a forjar!

Megadolon ha presentado en el foro la iniciativa  “The forging Bootstrapper” (“El despegue del forjado”);
Una cuenta, con un balance de 5M de NXT, los cuales serán repartidos aleatoriamente entre los Nxters que, con su forja, ayuden a ejecutar y a proteger la red Nxt. El programa Forging Bootstrapper quiere hacer más rentable la forja y la ejecución de nodos y, de este modo, colaborar para construir una gran red descentralizada de Nxt/Ardor.

 

Megalodon

‘El “Forjado” es el equivalente en Nxt a la minería en las monedas PoW. La minería en Nxt usa una lotería determinista que otorga el derecho a minar (forjar) el bloque siguiente. Con un balance efectivo mínimo de 1000NXT, ya optas a para ganar la lotería y, con ello, a recibir las comisiones (fees) que componen el bloque que estás produciendo. El boleto ganador se escoge al azar, pero contra más boletos poseas más oportunidades tienes para ganar. Tu probabilidad de ser premiado es el número de boletos que has comprado dividido por el número total de billetes vendidos a todos los que participan en la lotería. La probabilidad de ganar el concurso de forja equivale al saldo de tus NXT dividido entre el número total de NXT usados para forjar en toda la red.

Megadolon escribe:

La campaña de lotería de recompensa a la forja, gestionada por la cuenta Forging Bootstrapper con ID: NXT-HH9F-JMRB-6HRD-HD5ZW, está diseñada para recompensar a los forjadores. Las transacciones, con tasas excepcionalmente altas, se envían de manera aleatoria (aunque con baja frecuencia) desde el inicio del proceso de las snapshots de Ardor hasta que el balance de la cuenta sea 0. La lotería está diseñada para favorecer las cuentas con menor poder de forja. Las pools de forjado también tienen derecho a participar en esta campaña. Para aumentar tus posibilidades en la lotería, por favor identificaros aquí. Gracias.

Esta campaña se gestiona de tal manera que se espera que esté en funcionamiento durante un tiempo tras el lanzamiento de la cadena Ardor. Los tokens Ardor distribuidos a esta cuenta serán distribuidos entre los forjadores de Ardor mientras que los NXT restantes continuarán usándose como recompensa para los forjadores de la cadena 1.0, incluso una vez después que Ardor sea lanzado.

Algunas grandes cuentas han optado por auto excluirse de esta campaña. Por favor tenga en cuenta que las “transacciones de la lotería” accidentalmente pueden forjarse por las cuentas que se han excluido voluntariamente debido a la no certeza del 100% del orden de la forja.

No importa el tamaño de tu stake, deberías forjar, ya sea por ti mismo o cediendo (leasing) el saldo de tu cuenta a una pool (agrupación) de Nxt. El leasing de tu saldo (ceder tu saldo para forjar) no supone ningún riesgo. Cuando efectúas un leasing sigues manteniendo el control de tus NXT – la pool simplemente recibe tu “Saldo efectivo”, que no es más que tu actual poder de forja. La pool no puede hacer nada con tu cuenta o con tu saldo de NXT. Cuando vendes/compras NXT durante un leasing en activo lo que sucede es que la contribución a la pool se ajusta automáticamente en el protocolo de NXT.

Para poder forjar tienes que mantener más de 1000NXT en tu cuenta durante más de 1440 bloques.

Lo único que tienes que hacer es arrancar tu cliente NXT, identificarte con tu clave privada (contraseña) y se iniciará la forja. Se forja cuando estás online.

La función de leasing también necesita 1440 bloques (aproximadamente 24h), una vez después de haber pulsado el botón de “leasing”, para que tus NXT estén disponibles para forjar en la agrupación o cuenta a la que has efectuado el leasing. Todos los pools están disponibles 24/365.

¿Cómo puedo ceder (leasing) mi balance de forja?

Ejecuta el cliente Nxt y accede con tu contraseña.

  • Haz click en el saldo de la cuenta.
  • Haz click en la pestaña “Balance de Cuenta”.
  • Haz click “Ceder tu saldo a otra cuenta”.
  • Inserta la cuenta dónde deseas ceder tu balance.
  • Configura el tiempo que deseas ceder su saldo con la opción  “periodo” (se expresa en bloques. 1440bloques = 24h). Por defecto, se establece en el periodo máximo (65535 bloques) equivalente a unos 46días.
  • Introduce tu contraseña.
  • haz click en el botón “ceder el saldo” (te costará 1 NXT ceder tu saldo)

Si deseas abandonar la pool antes de que expire el tiempo que has predeterminado, puedes transferirte los NXT a otra cuenta que esté bajo tu control, los derechos de forja se transfieren a esa cuenta. Si realizas una transferencia del total de tu balance, el balance de la cuenta anterior, es decir 0, quedará en la pool hasta que finalice el periodo que estableciste.

¿A quién puedo hacer un leasing? ¿Cuáles son mis opciones?

Puedes ceder tu saldo a un pool que:
– pague todo los Nxt forjados, calculado de manera proporcional o
– done tus fees forjados a los proyectos que se acorde o
– mantenga los NXT forjados (porque personalmente quieras apoyarles donándo tus fees).

Tienes que confiar que la pool te distribuya la parte que te corresponda, puesto que las comisiones por forjado las recibe el pool.

Agrupaciones (pools)

Nxtcrypto.org

http://pool.nxtcrypto.org/howto.html

Es una agrupación para el forjado que lleva activa desde Mayo de 2104

Hilo del foro: https://nxtforum.org/general-discussion/nxtcrypto-org-leased-forging-pool-only-fees-are-1nxt-to-withdraw/
Dirección del pool: NXT-K5KL-23DJ-3XLK-22222
Estado: http://pool.nxtcrypto.org/status.php
Ganancias: http://pool.nxtcrypto.org/earnings.php

Comisión del leasing: 1NXT. Solicitud de pago: hecha a través de un mensaje arbitrario, envía un mensaje (el contenido no es importante) para solicitar un pago. Comsión por la transferencia de los pagos: 1NXT. Distribución: proporcional a la potencia de forja.

Nxt Forging Pool

Nueva pool iniciada por @Seccour, miembro francés de la comunidad Nxt.
Puedes leer más sobre esto en: https://nxtforum.org/leasing-pools/nxt-pool/

Lotería “Lucky Node” o “Nodo afortunado”

Lurker1 escribe:

Ahora con esta lotería puedes “generar” monedas ejecutando un nodo público en tu ordenador. Creo que es importante recompensar los nodos de los principiantes con “peso” 0,  que hayan configurado su primer nodo y quieran ganar unas monedas. El bonus lo consigues por:
* poner un “hallmark” en tu nodo y tener weight>0;
* abrir API
* abrir API_SSL
* ejecutar un nodo de archivo

Un número indeterminado de NXT se enviarán cada 2 horas a un nodo aleatorio.

Para participar en la lotería debes poner tu dirección NXT en la propiedad nxt.myPlatform, dentro del archivo nxt/conf/nxt.properties.

nxt.myPlatform=NXT-XXXX-XXXX-XXXX-XXXXX

Para la configuración del OpenAPI debes tener la siguiente configuración:
nxt.allowedBotHosts=*
nxt.apiServerHost=0.0.0.0

opcionalmente aumenta el valor de nxt.maxNumberOfInboundConnections para hacer tu nodo más disponible a los demás y aumentar tus posibilidades:
nxt.maxNumberOfInboundConnections=500

y, por último, resetea tu nodo para que la configuración tenga efecto.

Opcionalmente, crea un hallmark en tu nodo para obtener un bonusextra por la weight>0 además del premio de la lotería.

Resetea tu nodo para que la configuración tenga efecto.

Echa un vistazo a tu nodo en la lista de https://nxtportal.org/peers y http://peerexplorer.com deberá aparecer en las dos para mejores resultados.

La dirección NXT-8F28-EDVE-LPPX-HY4E7 es mía y desde ahí se enviarán las monedas, no la pongas en la propiedad myPlatform. La he creado con una pequeña cantidad. Cuando esto se agote, espero que alguna ballena contribuya, de tanto en tanto, con una pequeña cantidad para mantener esta lotería.

Megadolon añadió:

Como esta lotería está dentro de los objetivos generales de la campaña de lotería Recompensa a la Forja, será apoyada a través de donaciones desde la cuenta Forging Bootstrapper NXT-HH9F-JMRB-6HRD-HD5ZW. (Para recibir las recompensas de ambas campañas, es necesario ejecutar un nodo público y forjar).

¿Cómo ejecutar un nodo de Nxt?

Puedes ejecutar un nodo desde tu casa.

En este tutorial puedes encontrar las instrucciones para configurar un nodo en una Raspberry Pi: http://test.nxter.org/es/tutorial-como-montar-un-nodo-nxt-en-una-raspberry-pi-2/

Si lo que deseas es configurar un nodo en un VPS (gratis o de pago) o en un servidor dedicado pero no sabes cómo, @emoneyRu te lo configurará y lo mantendrá gratis para ti. Puedes contactar con él en: https://nxtforum.org/public-nodes-vpss/emoneyru-will-for-free-manage-you-vpss-for-you/

Pero si quieres hacerlo por ti mismo, aquí tienes un tutorial:
https://nxtwiki.org/wiki/How-To:CreatePublicNode

Otros enlaces de utilidad:
Configurar un nodo histórico
https://nxtwiki.org/wiki/How-To:CreateHallmark
https://nxtwiki.org/wiki/How-To:CreatePublicNode
https://nxtwiki.org/wiki/How-To:UseSslCerts

Pon un Hallmark (Sello de calidad) y gana NSC (Nxt Security Coins)

Si tienes tu nodo con un sello de calidad puedes obtener recompensas adicionales

Un hallmark es un sello de garantía para un nodo de Nxt. Mediante la creación de una firma digital basada en tu dirección IP y en tu frase secreta, estás verificando que tu cuenta posee un nodo y es responsable de ello. Esto ayuda a proteger a la red de los ataques e incrementa la confianza de la red en tu nodo.

Además de recibir recompensas adicionales por parte del programa “Lucky Node” por crear un hallmark en tu nodo, también ganarás NSC (Nxt Security Coins), una moneda-recompensa establecida en el Sistema Monetario de Nxt y creada para promover el crecimiento y la seguridad de la red Nxt. Los NSC pueden intercambiarse por NXT en el intercambio del Sistema Monetario.

abctc escribe:

Distribución de los tokens NSC para los nodos con hallmark:
– Requisitos mínimos de la NRS: version última o penúltima de la cadena principal + última versión experimental si se presenta.
– Nuestro nodo tiene que poder ver tu nodo con hallmark, por favor, asegúrate que tiense esto escrito en tu configuración: “nxt.wellKnownPeers=nsc.nxt.org”
– Puedes comprobar si tu nodo está activo o no, en: http://nsc.nxt.org:7876/nxt?requestType=getPeers&active=true
– La comprobación del hallmark se realiza numerosas veces cada día con el fin de capturar tantos hallmarks como sea posible. Los nodos con hallmark capturados son guardados para usarlos durante la distribución quincenal. Puedes verlos aquí: http://nsc.nxt.org/
– La distribución se efectua de manera quincenal.
– ¡Los MS NSC que ganes* dependen del stake que tengas en la comunidad Nxt!
– Menos de 1000 NXT: 0.02 NSC por día y nodo (Para los pequeños nodos o forjadores)
– 1000 – 9999 NXT: 0.5 NSC por día y nodo (normal)
– más de 9999 NXT: 3.5 NSC por día y nodo (nodos de más confianza)
* Por favor, tenga en cuenta que los NSC se reparten cada 2 semanas cuando se alcanza un mínimo de 20 NSC (para reducir las fees). Si has ganado menos de 20 NSC, se te enviarán en la próxima ronda de reparto.

EmoneyRu puede gestionar tus VPS, gratis: https://nxtforum.org/public-nodes-vpss/emoneyru-will-for-free-manage-you-vpss-for-you/

El valor de los NSC lo decide la comunidad (consejo: por favor ayuda colocando órdenes de compra dentro del Intercambio del Sistema Monetario de Nxt y/o ¡no vendiendo todos los NSC que se distribuyen! Los emisores nunca van a vender las monedas emitidas)blockquote>
Megadolon escribe:

Esta campaña de larga duración gestionada por @abtc y @EmoneyRu usando la moneda NSC del Sistema Monetario recompensa exclusivamente a los nodos con hallmark. La cuenta Forging Bootstrapper NXT-HH9F-JMRB-6HRD-HD5ZW también dará apoyo a esta campaña mediante la colocación (de manera ocasional) de ofertas de compra un poco más altas que las existentes.

To benefit from all 3 campaigns, you’ll need to run a public node AND hallmark it AND forge with your NXT balance.

Nxt-ardor-forging-rewards

Fuente: https://nxtforum.org/general-discussion/5-million-nxt-bounty-for-nxt-ardor-forgers/

Tutorial: Cómo montar un nodo Nxt en una Raspberry Pi 2

 

Nxt es una de las redes p2p más impresionante y, al mismo tiempo, más subestimada de todo internet. Es una plataforma basada en una cadena de bloques descentralizada de código abierto que introdujo un novedoso algoritmo de consenso basado en la prueba de participación (proof-of-stake) y que ya lleva sobreviviendo en este ambiente hostil durante más de dos años. En la actualidad, la tecnología que introdujo Nxt está siendo utilizada en proyectos que cuentan con una vasta financiación como Ethereum, mientras que la Nxt permanece en segundo plano.

Sin embargo, los desarrolladores de Nxt continúan trabajando duro y la última versión nos trae un nuevo juego de funcionalidades de lo más vanguardistas. La API continua aumentando sus capacidades, mientras que el software sólo requiere de un equipo con pequeños recursos para funcionar. Un “nodo completo” capaz de generar bloques puede funcionar en una Raspberry Pi 2 que sólo cuesta unos 50$ en componentes. Probablemente si estás leyendo esta entrada pretendas poner en marcha el tuyo, así que empecemos.

Necesitarás lo siguiente:

  • Raspberry Pi 2
  • Tarjeta de memoria microSDHC de al menos 8GB (Recomendable que sea de Clase 6 o superior)
  • Un cable micro USB para la alimentación
  • Un cable de red de Cat. 5 o bien un adaptador wifi para conectarlo al puerto USB
  • Teclado USB, monitor y cable HDMI (sólo para la configuración inicial)

Instalando el Sistema Operativo

Utilizaremos Linux porque es confiable, seguro y gratuito. Raspbian es la variante de Linux más utilizada en los dispositivos Raspberry Pi y cuenta con un buen servicio de soporte y de mantenimiento. En el momento de escribir estas líneas, la última versión de Raspbian se llama”Jessie” (21-11-2015), que se puede descargar desde RaspberryPi.org. El nuestro será un nodo dedicado y el usuario solo accederá remotamente, por lo que recomiendo usar la versión Jessie Lite puesto que no necesitaremos de una interfaz gráficas.

Existen multitud de maneras diferentes de grabar la imagen en tu tarjeta microSDHC y la guía de instalación explica como hacerlo en LinuxOS X y Windows.

“Es fácil una vez lo has conseguido…”

Configuración del Sistema Operativo

Una vez que tu tarjeta microSDHC está lista, puedes iniciar tu Raspberry Pi 2 por primera vez. En primer lugar inserta la tarjeta de memoria, conecta tu teclado USB, cable de red y cable HDMI y, acto seguido, enciende tu Raspberry Pi 2 conectando el cable micro USB. Muchos de los routers para usuarios domésticos que se venden hoy en día disponen de un puerto USB que deberían ser capaces de alimentar a la Raspberry Pi 2, pero si estás planeando usar periféricos (como por ejemplo un adaptador wifi por USB) te recomiendo usar un adaptador de corriente a micro USB que proporcione una salida de 1.0A, como mínimo.

Una vez que el sistema se ha iniciado deberías ver el símbolo del terminal. El usuario por defecto es pi y la contraseña por defecto es raspberry. Una vez que que has iniciado la sesión, ejecuta los siguientes comandos para instalar las últimas actualizaciones del S.O:

sudo apt-get update
sudo apt-get upgrade

A continuación, inicia la utilidad de configuración del S.O. tecleando lo siguiente:

sudo raspi-config

La primera cosa a realizar es cambiar la contraseña por defecto por una más segura. Elige “2 Change User Password” y sigue los pasos para establecer una nueva contraseña.

Selecciona “9 Advanced Options”

Puesto que no vamos a utilizar ningún gestor de ventanas podemos reasignar una parte de la memoria de la GPU al S.O. Selecciona “A3 Memory Split” y establece el valor en 16.

Si quieres ser capaz de acceder a tu nodo desde otro ordenador a través de SSH puedes activar el servicio en “A4 SSH”. Recomiendo insistentemente establecer medidas de protección en tu instalación SSH una vez has conseguido que todo funcione.

Finalmente, selecciona la opción “1 Expand Filesystem” para reescribir la tabla de partición de tu tarjeta microSDHC para usar al completo la capacidad de almacenamiento.

Una vez completado, presiona ESC para salir del raspi-config y reinicia el sistema:

sudo reboot

Después de iniciar sesión de nuevo, comprueba que el sistema de archivos raíz que está montado en / se ha expandido:

df -h

El tamaño del sistema de archivos raíz debería aproximarse al tamaño de tu tarjeta microSDHC.

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  2.2G   13G  14% /

A continuación vamos a aumentar el espacio de intercambio swap, para lo que editaremos el archivo de configuración swap y reiniciaremos el servicio:

sudo nano /etc/dphys-swapfile

Cambia la línea dónde pone CONF_SWAPSIZE y establécela en 512 o 1024 y guarda el archivo (CTRL-O, ENTER, CTRL-X).

# set size to absolute value, leaving empty (default) then uses computed value
#   you most likely don't want this, unless you have an special disk situation
CONF_SWAPSIZE=1024

Reinicia el servicio del archivo de intercambio swap:

sudo service dphys-swapfile restart

Configuración de la red

Puesto que estamos creando un nodo completo, tendrás que permitir el tráfico peer-to-peer en tu router. La configuración de cada red es diferente, así que está sección solo va a indicar unas líneas generales. Si estás conectado a un router que tiene el DHCP activado, tu Raspberry Pi 2 ya debería haber obtenido una dirección IP local. En caso contrario, necesitarás configurar una dirección IP estática. Para mostrar la configuración actual de tu red teclea:

ifconfig eth0

eth0   Link encap:Ethernet  HWaddr b1:ff:4a:a4:ff:1b
       inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0

inet addr es tu dirección IP local, HWaddr es tu dirección MAC. En la configuración de tu router, localiza los ajustes de reenvío de puertos (port forwarding) y reenvía el tráfico TCP/UDP que llegue al puerto 7874 a la IP Local de la Raspberry Pi 2. Si no estás usando una dirección IP estática, deberías configurar un préstamo de una DHCP estática (también conocido como reserva de DHCP) para esa dirección MAC y dirección IP local. De esta manera la Raspberry Pi 2 siempre obtendrá la misma dirección IP Local para la que configuraste la regla de reenvío de puertos.

Instalando Java

Nxt requiere Java 8. Puedes descargar e instalar manualmente Oracle JRE, o puedes instalar fácilmente OpenJDK JRE:

sudo apt-get install openjdk-8-jre

Asegúrate de que Java se ha instalado correctamente comprobando la versión:

java -version

Deberías ver un resultado semejante al siguiente:

openjdk version "1.8.0_40-internal"
OpenJDK Runtime Environment (build 1.8.0_40-internal-b04)
OpenJDK Zero VM (build 25.40-b08, interpreted mode)

Instalando Nxt

Descarga la última versión de Nxt desde el repositorio público. Puedes usar el comando wget en el terminal para descargar directamente el archivo por HTTPS. En el momento de escribir este texto la versión actual de Nxt es la 1.7.4, pero asegúrate de que usas la última versión disponible.

wget https://bitbucket.org/JeanLucPicard/nxt/downloads/nxt-client-1.7.4.zip

Comprueba el hash del paquete y asegúrate de que coincide con el hash de las notas certificadas de la versión. También puedes comprobar el hash en la blockchain. La cuenta Nxt usada por Jean Luc, el desarrollador líder del código central, es NXT-X4LF-9A4G-WN9Z-2R322.

sha256sum nxt-client-1.7.4.zip

baf0286983fee3f718ea755dd76f5e9bb3d6a2962560368d513ffc9517d10c9b  nxt-client-1.7.4.zip

Extrae el archivo para crear la carpeta “nxt”:

unzip nxt-client-1.7.4.zip

Antes de configurar Nxt, necesitarás conocer tu dirección IP pública. Puedes saber cual es tecleando el comando:

curl ipinfo.io

Anota tu IP pública y a continuación ejecuta el siguiente comando para crear un nuevo archivo de configuración:

nano ~/nxt/conf/nxt.properties

Lo que viene a continuación es un ejemplo de un archivo de configuración:

nxt.myAddress=12.34.56.78
nxt.apiServerHost=0.0.0.0
nxt.allowedBotHosts=*

Si conseguiste configurar el reenvío de puertos en el router, establece en nxt.myAddress tu dirección de IP pública tal y como se mostraba en la salida del comando curl. En caso contrario, elimina esta línea del archivo de configuración. En el resto de parámetros, hemos establecido que la API acepte conexiones desde cualquier lugar. Una vez que tienes las cosas funcionando, deberías procurar restringir el acceso a tu área local o solo permitirlo a direcciones IP específicas. Échale un vistazo a nxt/conf/nxt-default.properties para ver descripciones de los parámetros de configuración. Guarda el archivo de configuración y cierra el editor.

Edita el archivo de inicio y optimiza la configuración de memoria:

nano ~/nxt/run.sh

Añade el parámetro -Xmx640m para aumentar la asignación de memoria de almacenamiento dinámico de Java a 640mb:

java -Xmx640m -cp classes:lib/*:conf nxt.Nxt

Ya estás listo para iniciar el servidor. Puesto que es una instalación nueva, el nodo necesitará descargar la cadena de bloques al completo para poder sincronizar con la red Nxt. En algunos casos esto puede llevar mucho tiempo, dependiendo de la velocidad de tu conexión de red y del tipo de tarjeta de memoria utilizado.

Puesta en marcha y conexión

Nxt funciona como un proceso servidor que proporciona una API y una interfaz web cliente. En primer lugar iniciaremos el servidor:

cd ~/nxt
./run.sh

Deberías ver el arranque del servicio y como sincroniza con la red. Cuando el arranque se haya completado, verás lo siguiente:

2016-01-03 13:43:28 INFO: Nxt server 1.7.4 started successfully.
2016-01-03 13:43:28 INFO: Copyright © 2013-2016 The Nxt Core Developers.
2016-01-03 13:43:28 INFO: Distributed under GPLv2, with ABSOLUTELY NO WARRANTY.
2016-01-03 13:43:28 INFO: Client UI is at http://localhost:7876/index.html

Abre un navegador web en un PC conectado a la misma red y navega hasta la dirección IP local de la Raspberry PI 2 en el puerto 7876.

Ejemplo: http://192.168.1.10:7876

Para la interfaz interactiva de la API, añade /test a la dirección.

Ejemplo: http://192.168.1.10:7876/test

Enhorabuena, si eres capaz de acceder la página de login /test entonces Nxt se ha instalado correctamente. Para detener el servidor Nxt, pulsa CTRL-C en el terminal.

Pasos finales

Activar SSL

Para poder usar con seguridad Nxt, deberías configurar SSL en tu nodo. Si usas HTTP, un atacante a tu red podría robar tu contraseña de Nxt. Recomiendo configurar un certificado autofirmado en el nodo y usar solo HTTPS.  Publiqué algunas instrucciones con “trucos” que se basan en las instrucciones de la wiki. El desarrollador del núcleo Riker también ha posteado en un hilo sobre como configurar SSL.

Instalar screen

Para facilitar la gestión del nodo, recomiendo instalar screen. Te permitirá mantener ejecutando programas en sesiones de las que te podrás desconectar. Una vez que empiezas a usarlo te preguntarás por qué no lo habías utilizado antes.

sudo apt-get install screen

Para usar screen en tu servidor Nxt, edita el archivo run.sh y modifica el comando:

nano ~/nxt/run.sh

screen -mS nxt java -Xmx640m -cp classes:lib/*:conf nxt.Nxt

La próxima vez que inicies el servidor tecleando run.sh, serás capaz de desengancharte del proceso pulsando CTRL-A, CTRL-D. Para reengancharte a esa sesión, introduce el comando:

screen -r nxt

Inicio automático

Una manera fácil de iniciar automáticamente el servidor Nxt cuando se inicia el sistema es con el programador de tareas cron. Necesitas añadir una entrada especificando @reboot y ejecutar los comandos de inicio allí:

crontab -e

@reboot sleep 30 && cd /home/pi/nxt && ./run.sh

En este ejemplo, el servidor Nxt se iniciará 30 segundos después de que se inicie el sistema. Puedes usar cron para programar otras tareas también.

Para preguntas o comentarios, por favor visita el hilo de este post en el foro (en inglés).

El cliente NxtLite

nxtlite

NRS sin cadena de bloques

Empezar a utilizar Nxt y el poderoso cliente NRS Nxt se acabar de convertir en algo sencillísimo para los recién llegados.

NxtLite hace muy fácil para los usuarios “normales” ejecutar la interfaz gráfica de NRS; Simplemente hay que descargar la aplicación, pulsar el icono en el menú de inicio y empezar a usar Nxt. No hay ventanas de comandos, no hay Java, no hay que teclear ninguna dirección en el navegador web, no hay que descargar ninguna blockchain. Nxtlite permite realizar operaciones sin blockchain tanto con un único nodo como en multinodo.

Slothbag nos lo describe así:

En un 100% es el mismo código que la interfaz NRS (NRS GUI). Cualquier nueva característica de NRS será incorporada a NxtLite tan pronto como recompile el instalador y lo ponga a disposición en internet.

Todas las firmas de las transacciones aparecen en el cliente/navegador como en NRS, de modo que lo único diferencia es que no puedes forjar, puesto que esto requeriría compartir tu clave privada con el servidor. NxtLite usa PeerExplorer para localizar pares, aunque a la larga podría usar el mismo buscador de pares que usa NRS para encontrar pares por si mismo.

NxtLite tiene la posibilidad de integrarse en el proyecto Nxt Trezor, usando para ello funcionalidades de bajo nivel del Sistema Operativo.

NxtLite es un software multiplataforma.

En versiones más antiguas de Windows puede ser necesario tener las últimas DirectX instaladas, si es que no lo están; en Windows 8, NxtLite funciona perfectamente sin tener que tocar nada. En Linux y OSX será necesario instalar mono, simplemente descargarlo y hacer un par de clicks: http://www.mono-project.com/download/.  Una vez está instalado ya no hay que preocuparse más sobre el tema.

Descarga

Nxtlite:

https://github.com/slothbag/NxtLite/releases

Nxtlite0

Ejecución

Selección del modo de funcionamiento:

La pantalla de selección inicial del modo es la única cosa que varía respecto al cliente NRS. También puedes cambiar las opciones desde la pantalla de acceso más adelante. Los usuario normales deberían elegir multinodo ( “Multi node”).

nxtlite1

Slothbag:

Un único nodo

Escribes en la dirección la de un nodo que conozcas/confíes. La interfaz de NRS sin ningún cambio se conectará a la dirección IP que has especificado. ¿Para qué? Poder ejecutar una consola del nodo NRS sin cabeceras en una máquina, mientras se disfruta la interfaz gráfica a través de aplicación nativa en tu propio escritorio.

MultiNodo

La aplicación descargará todos los nodos del tipo “open API” desde PeerExplorer y enrutará cada comando individual API de NRS al siguiente nodo público de la lista. Esto significa que puedes usar un 90% de la funcionalidad de la interfaz gráfica de NRS sin tener que ejecutar un nodo completo con su correspondiente blockchain. (Sin forjado)

¿Por qué funcional al 90%? Porque algunas de las pantallas específicas del nodo local, como son la comprobación de actualizaciones, comprobaciones de forks e información de estado de NRS, no tienen sentido en un nodo multinodo.

Utilización

Puedes encontrar manuales de usuario en el enlace del menú superior “GET STARTED”. Aquí puedes encontrar uno para ir empezando con NRS: http://test.nxter.org/nxt-client-interface-guide/.

nrs-nxtlite

Las actualizaciones de NxtLite se anunciarán en este hilo de Nxtforum (en inglés): https://nxtforum.org/general-discussion/(ann)-nxtlite/msg161593/#new

Muéstrale algo de cariño al desarrollador

Slothbag (entre cuyos trabajos relacionados con Nxt también se incluye una solución DNS p2p para la red Hyperboria) hizo este cliente NxtLite para que tu lo disfrutes. Su identificador (ID) de cuenta Nxt es NXT-3S9K-NZLR-W7H8-HR8DW. Sólo para que quede constancia.

Empieza con Nxt

Obtén una cuenta Nxt

Descarga el cliente Nxt Lite Client (sin blockchain) y regístrate aquí

o descarga el cliente Nxt en: http://nxt.org

nxtwallet

o usa una cartera online : https://wallet.mynxt.info / http://jnxt.org/nxt/ (full client).
o si te gusta mancharte las manos, descarga y usa el NRS (software de referencia Nxt). Lee la guía.

Asegura tu cuenta

¡Escoge tu contraseña a conciencia! Utiliza más de 35 caracteres.

Obtén unos cuantos NXT gratis y registra tu cuenta en el Blockchain.

Puedes protegerte de los dichosos Keyloggers y malwares con esta aplicación de Android: NxtVault.

Cómo usar el cliente Nxt

nxt_NRS_wallet_login

Este tutorial te guía a través de las opciones principales y de interfaz de Nxt NRS.

Cómo comprar activos en NxtAE

Este tutorial te guía a través de las opciones principales y de interfaz del intercambio de activos Nxt.

AE_banner

Cómo utilizar el mercado Nxt

por sile16

Sistema de plugin Nxt

por MrCluster87

Sistema de votación Nxt

por MrCluster87

Transacciones multifirma

por MrCluster87

Sistema monetario Nxt

Obtén información adicional acerca de esta característica en: Nxt CORE descripciones.

por MrCluster87

Tutorial: El intercambio de activos de Nxt (Nxt Asset Exchange)

  • ¿Qué son los activos?
  • El intercambio de activos (Asset Exchange)
  • Buscando activos
  • ¡Atención comprador!
  • Comprar y vender activos
  • Cancelar una orden
  • Prioridad de las órdenes
  • Ver y transferir activos
  • Tasa por transacción
  • Encontrando un buen precio
  • Actúa con cautela y resuelve tus dudas

¿Qué son los activos?

Los assets o activos son una buena manera de representar cualquier cosa consumible y negociable. Un token de un activo puede representar un lingote de plata, un cupón intercambiable por una pizza, una acción de una compañía y hasta una porción de otra cartera de activos. Al queda representado digitalmente en la blockchain, permite ser verificados e intercambiados fácilmente y de manera pública.

El intercambio de activos Nxt (Nxt AE) está basado en el concepto de “moneda coloreada”. Para adentrarnos más en éste concepto, El AE de Nxt  se basa en la capacidad que la cadena de bloques tiene para reconocer y, por tanto, determinar el origen de la transacción de la moneda o del conjunto de monedas que han sido designadas (o coloreadas) para representar cualquier tipo de activo que se pueda imaginar. Activos digitales (acciones, bonos…) o tangibles (coches, casas, metales…).

Los tokens de los mismos activos son fungibles, son todos tratados y procesados de la misma manera por la red Nxt. Por conveniencia, éstos pueden ser divididos por el número de decimales que el creador especifique.

El intercambio de activos (Asset Exchange)

El Nxt Asset Exchange o el Intercambios de Activos de Nxt crea un vínculo entre comprador y vendedor de activos. Funciona de una manera similar a una plataforma de intercambio de criptomonedas (exchange). Este tutorial te mostrará cómo comprar y vender tokens de activos en el mercado de activos.

Puedes acceder a todas las operaciones del AE desde la barra lateral del cliente oficial de Nxt.

Buscando activos

Para visualizar un activo, necesitas introducir en el cuadro de búsqueda el número del identificador del activo.

Puedes buscar un activo a través del cuadro de búsqueda en la esquina superior izquierda del cliente.

La búsqueda abrirá una ventana en la que deberás pulsar para ver el activo en el Intercambio de Activos.

Puedes marcar un activo pulsando en el botón de la esquina superior derecha.

Nuestro ASSETHUB lista los 50 activos más populares y sus identificadores.

Otras páginas web como https://mynxt.info/assets y https://nxtportal.org/assets tienen una lista de todos los activos disponibles.

¡Atención comprador!

Los activos Nxt se deben de identificar a través de su identificador (ID), que es un número de identificación único y exclusivo para ese asset.

Los nombres de los activos no son únicos, esto es así para evitar que nadie los acapare. Así que nunca te bases exclusivamente en el nombre de un activo para identificarlo, siempre comprueba que su identificador (ID) y la cuenta Nxt emisora coincide con la publicada por el emisor en su página web o en su correspondiente hilo en el foro. Los estafadors se aprovechan para lanzar assets con el mismo nombre que los genuínos para conseguir que la gente les entregue su dinero.

Pongamos como ejemplo el activo Jinn, que representa la participación en los beneficios del proyecto Jinn. Podemos ver como la identificación del activo Jinn puede encontrarse en su página web y en el hilo del anuncio en NxtForum.

Este que mostramos a continuación NO es el verdadero Jinn:

Investiga siempre cualquier activo antes de comprarlo y  comprueba que el número del ID es el correcto.

Dónde conseguir monedas NXT

Compra y venta de activos

En primer lugar, pulsa en el signo “más” para desplegar las ventanas de compra-venta.

Para comprar un activo en el Intercambio de Activos Nxt, coloca una orden de compra que indique el número de activos que quieres comprar, y cuántos Nxt estás dispuesto a pagar por cada activo.

La venta de activos es similar, pero se realiza en el lado derecho

Asegúrate de que estás llevando a cabo la acción correcta, mediante la lectura de la descripción en el botón (la compra es convertir NXT -> activos, la venta es convertir de los activos -> Nxt). Antes de confirmar tu orden, comprueba que tiene el número correcto de dígitos antes y después del punto decimal.

No se puede pujar más que los NXT que tienes disponibles en tu cuenta. Cuando pones una orden de compra, el precio total de la orden se reserva automáticamente de tu cuenta y no se puede mover ni gastar, a menos que canceles la orden. Se deducirá si la orden se ejecuta.

Tampoco se puede vender más tokens de los disponibles en la cuenta ni, por supuesto, puedes transferir los tokens de tu cuenta si ya los tienes puestos a la venta.

Cancelar una orden

Puedes ver todas las órdenes no ejecutadas en “Intercambio de activos”—“Órdenes abiertas”. Todas las órdenes pendientes de ejecutarse pueden cancelarse en cualquier momento, con sólo pagar la tarifa de la transacción. Una vez confirmada la cancelación, los NXT reservados o los tokens que estaban a la venta, son liberadas de nuevo al titular de la cuenta

[easy-social-share]

Prioridad de las órdenes

Las órdenes de compra tienen la siguiente prioridad:

  • Primero por precio (las ofertas más altas tienen más prioridad)
  • Seguido de la altura de bloque en el momento de ser añadidas (ofertas de bloques anteriores tienen mayor prioridad)
  • Y seguido finalmente del Identificador de la transacción (ofertas con el identificador de la transacción más bajo tienen mayor prioridad)

Las órdenes de venta se priorizan de una manera igual, pero las ofertas más bajas tienen mayor prioridad.

Las órdenes de prioridad más alta son las primeras que se ejecutan.

Ver y transferir activos

Puedes ver todos los activos disponibles en tu cuenta “Intercambio de activos”—“Mis activos”

Haz click en “transfer” en el lado derecho para enviar los tokens de activos a otra cuenta. Actualmente en una misma transacción solo se puede enviar tokens de un mismo activo. Es necesario realizar transacciones separadas para cada activo distinto que queramos enviar.

También puedes destruir tus activos usando el botón “Delete Shares”.

Tasa por transacción

Como la mayoría de las transacciones que se suman a la cadena de bloques, cuesta 1 NXT poder realizar o cancelar una orden, o transferir un archivo. La tasa o Fee será deducida de tu cuenta una vez se confirme el bloque que contiene la transferencia.

Encontrando un buen precio

Si tu oferta de compra para un activo es muy baja pude ser que nadie esté interesado en venderte a ese precio, o puede pasar mucho tiempo hasta que se vacíen las órdenes de compra por encima de la tuya y alguien decida venderte. El histórico de órdenes de compra y los intercambios recientes pueden guiarte a encontrar un buen precio.

Las representaciones recientes del precio pueden ayudarte a ejecutar órdenes rápidamente, pero podría suceder que el precio que pagues no represente su verdadero valor a largo plazo.

Ten cuidado de centrarte demasiado en los movimientos de precios a corto plazo. De lo contrario podrías dejarte llevar por compras-ventas conducidas por el pánico (panic buy / panic sell), que es una manera segura de perder dinero. Es necesario tomar en cuenta toda la información disponible en relación con un activo y su emisor, con el fin de llegar a una debida decisión para considerar el valor de los activos.

Actúa con cautela y resuelve tus dudas

Antes de comprar un activo, al menos debe entender lo que representa y aclarar cualquier duda con el emisor.

En el ASSETHUB de Nxter.org puedes leer en profundidad investigaciones sobre activos y encontrar una lista Top 50 de los activos más populares dentro del AE. Se habla sobre muchos activos en los apartados de activos de nxtforum.org https://nxtforum.org/assets-board/https://nxtforum.org/nxt-projects/.  Allí puedes hablar con los emisores de activos y otros inversores.

También debes comprobar que los emisores de los activos son quienes dicen ser. Así, por ejemplo, si alguien anuncia acciones otorgando los beneficios de funcionamiento de un restaurante, al menos compruebe que existe el restaurante, quien son sus dueños y si saben hacerlo funcionar. También hay que pensar si los dividendos esperados justifican el precio de la acción. Una buena pregunta que debes hacerse es: “¿Sería probable que el emisor de los activos desapareciese con todos los NXT obtenidos de la venta de activos, en lugar de seguir adelante con sus promesas”? Por ejemplo, si el emisor es anónimo y empieza a recibir una fuerte financiación inicial por la venta de sus activos, sería una posibilidad que abandonase el proyecto y se fugase con las ganancias.

Pero si, por el contrario, el emisor tiene una reputación que quiere proteger y construir, y tiene un plan de negocios sólido con esperanzas de ganancias a largo plazo superiores a los NXT recaudados inicialmente, tendría buenas razones para honrar sus promesas. Hay que pensar en los riegos y las posibles ganancias antes de invertir. Una vez más, los nombres de los activos no son únicos. Compruebe siempre el número de identificador del activo y el anuncio que el creador ha hecho sobre él. Hay estafadores que emiten activos con el mismo nombre que otros populares activos con el fin de tratar de engañar a la gente para que pague por ellos.

La información contenida en este artículo no constituye (y no pretende constituir) cualquier forma de consejo, recomendación, representación o aprobación por parte del autor o del propietario del sitio web y no debe confiarse a la hora de hacer (o dejar de hacer) cualquier decisión de inversión.

Nxt [CORE]: Sistema de Alias

 

nxt_alias_system

 

La característica de Alias fue introducida en el bloque 22.000, el 22 de diciembre del 2013. “Aliasing” es un sistema de nombres de dominio descentralizado que permite, a los usuarios NXT, registrar una cadena de caracteres que apunten a cualquier lugar.

En términos sencillos, el sistema de alias permite sustituir una pieza de texto por otras por lo que, las palabras clave o frases, pueden usarse para representar otras cosas: nombres, número de teléfono, direcciones físicas, webs, número de cuenta, mail… Casi cualquier cosa que se pueda imaginar.

Tan pronto como el sistema de alias fue habilitado, los Nxters grabaron nombres de gran potencial comercial, esperando un día poderlos vender por mucho beneficio, justo como los dominios web. Marcas y nombres de grandes corporaciones, fueron comprados por la cantidad de 1 NXT, junto con una gran cantidad de alias relacionados con el sexo, de manera directa e indirecta. Más tarde, un bot fue utilizado para absorber cada palabra de hasta 4 letras, que aún no habían sido registradas.

Envía NXT y mensajes a los Alias

Mientras que estos primeros “invasores” siguen esperando sus recompensas, el uso de alias es simplemente para que sea más fácil enviar NXT. De este modo, mediante el registro de un alias y apuntando a una dirección de la cuenta NXT ya no tiene que especificar esa dirección al enviar monedas o mensajes a la misma; sólo tiene que enviar las monedas y los mensajes al alias y serán recibidos por la cuenta de NXT. A modo de ejemplo, la escritura ‘nxteracc’ en el campo de destinatario se verá así:

nxteracc_alias

Otro uso del sistema de alias, es que le permite distinguir rápidamente diferentes cuentas de NXT.

Alias a URLS

Los alias también se pueden configurar para que apunte a una dirección URL.

Los plugins de los navegadores Chrome y Firefox, que utilizan el sistema de alias para reemplazar los nombres de dominio, se han desarrollado – por lo que es posible, por ejemplo, mediante la introducción de NXT: google en su navegador, ir a Google.com, o introduciendo NXT: nxter para navegar a NXTER.ORG. Desafortunadamente estos plugins no se han impuesto hasta la fecha.
Otro caso de uso es la vinculación de los alias de archivos .torrent.

Registrar, negociar y borrar los Alias de Nxt

Los registros de alias, se realizan en el cliente de NXT. Escriba su nombre de alias preferido y el tipo: URI, CUENTA u OTROS (el alias puede contener cualquier dato que desee).

register_nxt_alias

Los alias se pueden transferir y negociar, al igual que los activos. Algunos están acondicionadas para la venta en el mercado de Nxt, pero también hay una opción incorporada: VENDER dentro del cliente. Se puede establecer un precio y si alguien trata de registrar el Alias, él verá su oferta y podrá comprarlo o ponerse directamente en contacto con usted. El comercio está automatizado, una vez más, ya que son como activos: en el pago, el comprador recibe el Alias, y el pago se transfiere al vendedor.

La cartera NRS 1.4, habilita la eliminación del alias

Espacios con nombres Alias

La cartera MOFO permite encriptar los espacios de nombres. El espacio con nombre alias, puede ser público o cifrado, así que, sólo el propietario de la cuenta o el titular de la cuenta y otro propietario de la cuenta pueden descifrarlo.

Un caso de uso puede ser una empresa que emite un activo y envía una gran cantidad de mensajes a los inversores de este bien. Con los espacios con nombres alias, cada mensaje podría ser un alias, visible en un cliente, por ejemplo: la cartera MOFO. Ahora, el inversor podría buscar por marca de tiempo o rangos de teclado parciales y cargar todos los mensajes de anuncio (y sólo aquellos) en una sola llamada.

Otro caso de uso, que está disponible como un plugin de demostración en al cartera MOFO, es un fuerte identificador blockchain que, por ejemplo, permite que una persona se identifique, mediante el descifrado de algunos datos verificados sobre sí mismo en la blockchain y envía los datos descifrados de vuelta al comerciante o entidad que solicita la identificación.

Si, por ejemplo, un comerciante quiere que Alice se identifique a sí misma, podría proporcionarle una URL en su página web que apuntase al plugin y permitiese su identificación. La función de espacios con nombres de Alias, es nativa de la moneda FIMK pero puedes hacer plugins que trabajan en la blockchain de NXT con la misma facilidad, ya que, NXT es totalmente compatible con MOFO.

Alias como Hyperboria DNS

Otra aplicación práctica del sistema de alias Nxt, se describe en el artículo de “Alias Nxt como Hyperboria DNS“.

‘Hyperboria es una conexión de meshnets locales, que funciona como una red de auto-organización que a su vez construye rutas entre nodos. Actualmente se utiliza el Internet para conectar nodos / meshnets locales pero está diseñado para funcionar de forma independiente de Internet’

Nxt y el miembro de la comunidad Hyperboria: Slothbag explican el Nxt aliasing:

“Hasta el momento, Hyperboria no ha tenido ninguna solución de DNS descentralizado. He creado una solución DNS P2P para la red Hyperboria para utilizar alias Nxt como dominio-> Resolución IP. Yo prefiero el sistema de alias de Nxt, es más o menos lo mismo que Namecoin pero sin la minería derrochadora, y con un montón de otras características interesantes de NXT”

Puedes leer más acerca de NXT e Hyperboria aquí, hay más de 1000 NXT de recompensa a los Nxters que ejecuten un nodo Hyperboria. Actualmente hay alrededor de 40 alias de dominio Hyperboria registrados en NXT.

Características simples, gran potencial

NXT está tan lleno de funcionalidades y algo tan simple como el sistema de alias, a menudo, pasa por alto. De hecho, es una característica de gran alcance que tiene un gran potencial – aunque sólo se realice plenamente en algún futuro.
El próximo artículo de la serie Nxt[CORE] analizará la función de Mensajes Arbitrarios (AM).
Nxt es una versátil criptoplataforma de código abierto. En esta serie de artículos sobre la base de Nxt, nos sumergiremos en sus principales características 2.0. El primer artículo fue sobre NXT, el propio token. Lea otros artículos acerca de Nxt [CORE]. Lea también: Nxt – Casos de uso

 

 

 

Imagen de inicio creada por QBTC.

La Plataforma Económica

Esta serie de artículos pretende ayudar a comprender el NXT y sobre cómo puedes usarlo para llegar a tus clientes, socios, amigos y conocidos.

Nxt es una iniciativa sin ánimo de lucro la cual esta supervisada por varios expertos en los campos de las finanzas, economía, criptografía, matemáticas e informática. Teniendo acceso a una comunidad capaz y una potente base tecnológica te permitirá alcanzar tus objetivos sin la necesidad de confiar ni pagar caros servicios de tercerosusecases_nxt

Nxt provee una plataforma descentralizada la cual te permite interaccionar  financiera, económica y socialmente.

@ Para todos

  • Banca online segura
  • Compra segura
  • Votos, elecciones y encuestas  [ en la versión 1.5]
  • Mensajes encriptados
  • más…

@Emprendedores, artistas independientes y compañias

  • Crowdfunding
  • Ventas y distribución
  • Marcas
  • más…

@Traders profesionales

  • Trading seguro y a mínimo coste
  • Creación de mercado
  • Dividendos, Sufragio y capitalización para accionistas [En la versión 1.4]
  • más…

@Expertos financieros, grupos locales y criptofans

  • Tu propio sistema monetario [a partir de la versión 1.4]
  • Depósito de valor [a partir de la versión 1.4]
  • Controlando el uso de la moneda  [a partir de la versión 1.4]
  • más…

Conclusión

Muchas más posibilidades te esperan cuando empieces con el Nxt. Para más lecturas, consejos y soporte ,te recomendamos que visites nxt.org y nxtforum.org. Una introducción más técnica a Nxt se encuentra en nxtinfo.org. Hay también varios videos en  nxter.org los cuales explican los elementos clave de Nxt.

Nxt – Para expertos financieros, grupos locales y criptofans

Desde el bloque 330000, Nxt cuenta con un mecanismo para crear sus propias monedas y ofrecer la libertad financiera que usted merece. Lo llamamos: el sistema monetario.

  • Su propio sistema monetario
  • Depósito de valor
  • El control de uso de la moneda

¿Es usted un experto financiero, un iniciador de grupo local o un criptoexperto? echa un vistazo a  Nxt – La patafoma económica para averiguar que más puede ofrecerte Nxt.

Su propio sistema monetario

Hay un gran número de monedas, locales y/o comunitarias, existentes en el mundo; la mayoría de ellas se basan geográficamente (en pueblos, ciudades y regiones, por ejemplo Berkshares en los EE.UU y Chiemgauerr en Alemania). Los fundadores de divisas emiten una cierta cantidad de unidades monetarias para el uso dentro de la comunidad. Algunas monedas locales toman la forma de unidades de tiempo, llamada ‘hora’; otras comprenden unidades de moneda vinculadas a la moneda nacional y el nombre de la localidad en que se utilizan. Algunos son de papel, algunos son digital y otros comprenden una mezcla de los dos.

La creación de un sistema de moneda local digital requiere: un amplio conocimiento de la criptografía, una infraestructura de servidor estable y un equipo de apoyo. Desafortunadamente, el costo y la dificultad de cumplir con estos requisitos significa que muchos esquemas de moneda local o nunca empezarán o se limitan a estar ya sea en papel, bien parcialmente, y por lo tanto incapaz de alcanzar su verdadero potencial.

Nxt ofrece un enfoque sencillo y completo para la creación de su propia moneda digital sin tener que gastar recursos en cualquiera de los temas mencionados. Nxt utiliza la criptografía moderna, cuenta con una infraestructura de servidores en crecimiento y un desarrollo y apoyo activo del equipo.

Depósito de valor

A diferencia de otros sistemas monetarios, en la que la riqueza de los usuarios se reduce por la expansión continua o repentina de la oferta monetaria, las monedas basadas en la plataforma Nxt pueden ser diseñados para actuar como depósito de valor. Para que su nueva moneda funcione como tal, sus fundadores necesitan respaldar su nueva moneda mediante el bloqueo (en efecto, manteniendo en depósito) del valor equivalente en NXT. Nxt siempre tiene un valor intrínseco ya que funciona como el combustible que alimenta la red Nxt.

Los usuarios son capaces de dejar el sistema en cualquier momento, mediante la amortización de la cantidad correspondiente de NXT bloqueados por sus unidades monetarias. En caso de que la utilidad de la moneda se reduzca por factores externos, los usuarios pueden salir en cualquier momento debido a este mecanismo de seguridad integrado. Tales factores externos podrían ser devastadores: fraudes, guerras, etc.

El control del uso de la moneda

La creación de una nueva moneda con Nxt no podría ser más sencillo; todo el trabajo duro ya está hecho para usted. Sólo tiene que especificar cuál de las propiedades de moneda soportadas por la plataforma Nxt desea integrarse en su nueva moneda. Estas propiedades controlan cómo se puede utilizar la moneda.

Dos ejemplos de estas propiedades de divisas, son la capacidad de negociar esa moneda en el cambio de divisas integrada y la capacidad de crowfunding. Este último le permite a los fundadores de divisas aumentar la adopción de su dinero, por tener más personas que se unen a la creación de la moneda. De esta manera, las unidades monetarias recién creadas se distribuyen automáticamente. Otra forma de realización de crowdfunding se describe aquí.

Otras lecturas

https://bitbucket.org/JeanLucPicard/nxt/issue/136/monetary-system  

Sistema monetario, helpdesk: https://nxtforum.org/nxt-monetary-system-helpdesk/

¿Necesitas más?

Echa un vistazo en: Nxt – La plataforma económica para encontrar todo lo que Nxt te puede ofrecer.