NXTER.ORG

Programando en la Cripto-Plataforma Nxt #5: Transacciones en la Blockchain de Nxt

Programando para Cripto-Plataforma Nxt #5: Transacciones en la Blockchain de Nxt

Blockchain de Nxt

La blockchain de Nxt es el corazón de Nxt. Todas las transacciones realizadas quedan registradas en la blockchain. El termino blockchain se refiere a una base de datos descentralizada que se guarda en tu ordenador. Para evitar el spam, por cada transacción tienes que pagar una tarifa en el token nativo, en nuestro caso es NXT ya que estamos usando su blockchain. En artículos anteriores he mostrado cómo configurar tu software Nxt así como a visualizar datos. Esta vez, escribiremos datos en la blockchain, empezando con un ejemplo simple. A lo largo del artículo quiero centrarme en las herramientas que puedes usar mientras creamos transacciones en Nxt.

Enviar Nxt

En lo que al código se refiere, crear una transacción en Nxt es muy similar a leer datos de blockchain. Hay algunos temas que tenemos que tratar antes de crear nuestra primera transacción. Para crear una transacción, primero necesitamos tener una cuenta Nxt y algunos NXT, a fin de pagar las cuotas de la blockchain. Por lo tanto, vamos a iniciar una sesión en Nxt y crearemos nuestra primera cuenta.

Crear una cuenta en Nxt

Para tener una cuenta Nxt que cuente con una gran seguridad, necesitas una contraseña fuerte. Trabajando con criptomonedas usamos el término passphrase en lugar de contraseña, esto significa fuerte entropía y, por tanto, debería ser más segura que una contraseña normal. Cuando estás utilizando el cliente oficial de Nxt, puedes utilizar la función implementada de confección de passphrases, la cual te proporcionará una frase de contraseña que contendrá 12 palabras.

Crea tu propia passphrase o frase de contraseña

También puedes crear tu propia frase de contraseña personalizada, pero asegúrate de que contiene suficientes caracteres y entropía. Para generar una frase de contraseña, se recomienda utilizar un software especializado como KeePass, LastPass, Dashlane o herramientas en línea como PasswordsGenerator.net or Fourmilab.ch.

Generador de frase de contraseña Nxt

Al ejecutar Nxt en http://localhost:7876 accederás al cliente. Haciendo clic en el enlace que dice

DON’T HAVE AN ACCOUNT? CLICK HERE TO CREATE ONE!

te llevará al generador de frases de contraseña. Después (o bien con tu propia frase de contraseña generada automáticamente), podrás iniciar la sesión en tu cuenta. Si todavía no tienes NXT, el método es muy rápido si ya posees otras criptomonedas como Bitcoin, Litecoin, Ethereum u otros. Puedes intercambiarlas a través Shapeshift o comprar tus monedas en otro intercambio y transferirlos a tu cartera.

En los pasos siguientes, usamos tu frase de contraseña para firmar y difundir transacciones. Tu contraseña también podría considerarse como tu clave privada (private key).

Crear la transacción

Una vez tenemos una passphrase segura, podemos adentrarnos en el código para crear una transacción de envío de NXT (send-NXT-Transaction). Enviamos 1 NXT a un destinatario, el cual se puede ver en el código, así como cambiarlo por otro destinatario. Inserta tu contraseña en el código siguiente y ejecútalo para crear la transacción.

<!DOCTYPE html>
<html>
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
    <div class="col-md-12">
        <h2>Outgoing Transaction JSON</h2>
        
    <div class="well" style="word-wrap:break-word;" id="transactionJSON"></div>
    </div>
  <script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
  <!-- Latest compiled and minified JavaScript -->
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
  <script>
  
  $.post('http://localhost:7876/nxt', {"requestType": "sendMoney", "recipient": "NXT-5RB8-KJD3-BT3B-E2QWW", "amountNQT": "100000000", "secretPhrase": "YourPassphrase", "feeNQT": "0", "deadline": "800", "broadcast": false}, function(request) {
  
        var response = JSON.parse(request);
        $("#transactionJSON").html(JSON.stringify( response , null, 4));
  
      });
      
  </script>
</body>
</html>

Este script está generando una transacción sendMoney. Como puedes apreciar, hemos cambiado la función utilizada en los artículos anteriores $.getJSON por $.post. Cuando creamos las transacciones es necesario cambiar al formato POST en lugar de las solicitudes GET como con las funciones anteriores. Para hacer referencia a los detalles de la API, echa un vistazo a http://localhost:7876/test?requestType=sendMoney.

La salida que se ve en la página contiene información variada, la variable feeNQT se ha rellenado con la información correcta y puedes comprobar el coste de la transacción que has creado. Verás toda la transacción JSON que has insertado en formato JSON y recibirás la transacción transactionBytes. La transacciónBytes incorpora toda la información de la transacción que tienes en la transacciónJSON.

La transacción creada anteriormente todavía no se transmitirá a la red, porque establecemos “broadcast”: false en nuestro objeto. Al establecer esta función en true, la transacción será transmitida y te costará 1 NXT. Como puedes ver, no necesitamos muchas variables para crear nuestra primera transacción.

La receta para una transacción es:

requestType sendMoney
recipient Puedes usar el fotmato RS, por ejemplo, NXT-XXX-XXX-XXX-XXXX o el formato de cuenta numérico
amountNQT La cantidad que deseas enviar debe ser calculada en NQT, el número más pequeño de NXT (1 NXT / 10⁸ = 1 NQT)
secretPhrase Tu frase de contraseña secreta
feeNQT 0 si deseas que el servidor calcule la mínima tarifa de transacción para ti deadline Medido en minutos, cuando expira la transacción.
broadcast:false no emitirá y sólo creará la transacción. Establecer a true para que la transacción se transmita a otros pares y te sea aplicada la tarifa en NXT

Broadcast transaction

Ahora que sabemos cómo crear una transacción sendMoney que todavía no se ha difundido, podemos usar un script similar al anterior para difundir la transacción. Para hacerlo más comprensible estoy ampliacndo el script anterior con un botón que toma la transacción previamente creada y la transfiere a la red al pulsarlo. Efectivamente, al ejecutar el script, tienes tu primera cartera interactiva Nxt (pequeña, ¡todavía no segura!).

<!DOCTYPE html>
<html>
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
    <div class="col-md-12">
        <h2>Outgoing Transaction JSON</h2>
        
    <div class="well" style="word-wrap:break-word;" id="transactionJSON"></div>
    <button class="btn btn-primary" id="submitTransaction">Submit this transaction</button>
   
    <hr>
    <div id="broadcastedTransaction"></div>
    </div>
  <script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
  <!-- Latest compiled and minified JavaScript -->
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
  <script>
  
  $.post('http://localhost:7876/nxt', {"requestType": "sendMoney", "recipient": "NXT-5RB8-KJD3-BT3B-E2QWW", "amountNQT": "100000000", "secretPhrase": "YourPassphrase", "feeNQT": "0", "deadline": "800", "broadcast": false}, function(request) {
  
        var response = JSON.parse(request);
        $("#transactionJSON").html(JSON.stringify( response , null, 4));
        $("#submitTransaction").on("click", function() {
          $.post('http://localhost:7876/nxt', {"requestType": "broadcastTransaction", "transactionBytes": response.transactionBytes}, function(broadcast) {
            var broadcastResponse = JSON.parse(broadcast);
            $("#broadcastedTransaction").html(JSON.stringify( broadcastResponse , null, 4));
          }); 
        });
      });
  </script>
</body>
</html>

Cuando cargues el sitio, estarás cargando directamente la transacción aún no difundida. Como la función correspondiente a pulsar en el botón esta anidada dentro de la primera llamada, puedes acceder a los datos de la transacción no emitida. Para emitir la transacción usamos la siguiente receta:

requestType broadcastTransaction

transactionBytes la transactionBytes que hemos creado con la función mencionada anteriormente.

Con estas pocas líneas de código podemos crear una transacción y transmitirla. Sin embargo, todavía estamos definiendo todas las variables directamente dentro del código. En los próximos artículos voy a mostrar cómo agregar mensajes cifrados a una transacción y cómo obtener estos datos a partir de una entrada de usuario que tienes en la página. Profundizaremos en las transacciones por fases y en la poda de las transacciones.

Ver también: http://test.nxter.org/developers

Más artículos de esta serie:

Programando para Cripto-Plataforma Nxt #1: Configuración
Programando para Cripto-Plataforma Nxt #2: Primeras etapas
Programando para Cripto-Plataforma Nxt #3: Output desde el Intercambios de Activos
Programando para Cripto-Plataforma Nxt #4: Datos históricos de los activos

por Tosch

Programando en la Cripto-Plataforma Nxt #4: Datos históricos de los activos

Programando en la blockchain de Nxt #4: Datos históricos de los activos

En el tema anterior, te mostré cómo recuperar los datos básicos de los activos desde el Asset Exchange de Nxt.

En este artículo quiero tratar el tema de cómo recibir el histórico de las operaciones. La llamada a la API que usamos aquí es “getTrades”

Histórico de las operaciones

Las operaciones históricas pueden ser sobre cualquier cuenta o activo. Continuamos con el ejemplo anterior y vamos a obtener las últimas operaciones del activo SuperNET.

Una vez más, vamos a utilizar los parámetros firstIndex y lastIndex para recuperar solo las últimas 10 entradas. Una vez más, vamos a utilizar los parámetros firstIndex y lastIndex para recuperar solo las últimas 10 entradas.

Si desea obtener más operaciones, simplemente cambia lastIndex a un número más alto o borre completamente tanto firstIndex como lastIndex completely.

Si eliminas firstIndex y lastIndex es posible que obtenga un número limitado de entradas, lo que puede configurarse en tu archivo de configuración de Nxt. Echa un vistazo a la propiedad nxt.maxAPIRecords = 100 y ajústala a tus necesidades (sólo cuando estás trabajando sin una contraseña de administrador).

Ahora, volvamos de nuevo al código.

<!DOCTYPE html>
<html>
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
  <div class="col-md-12">
    <h2>Trade History</h2>
    <table class="table table-striped">
      <thead>
        <tr>
          <th>Date</th>
          <th>Type</th>
          <th>Quantity</th>
          <th>Price</th>
          <th>Total</th>
          <th>Buyer</th>
          <th>Seller</th>
        </tr>
      </thead>
      <tbody id="tradeHistory">
      
      </tbody>
    </table>
  </div>
  <script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
  <!-- Latest compiled and minified JavaScript -->
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
  <script>
  
  $.getJSON('http://localhost:7876/nxt', {"requestType": "getTrades", "asset": "12071612744977229797", "firstIndex": 0, "lastIndex": 9, "includeAssetInfo": "true"}, function(request) {
        
    var trades = request.trades;
    var rows;
    var nxtTime = 1385294400;
    $.each(trades, function(key, data) {
      var decimals = data.decimals;
      var NQT_QNT = 8 - decimals;
      var quantityQNT = data.quantityQNT / Math.pow(10, decimals);
      var priceNQT = data.priceNQT / Math.pow(10, NQT_QNT);
      var total = data.quantityQNT * data.priceNQT / Math.pow(10,8);
      var NxtTimestamp = (+data.timestamp + +nxtTime) * 1000;
      var d = new Date(NxtTimestamp);
      rows += '<tr>';
        rows += '<td>'+d.toDateString()+'</td>';
        rows += '<td>'+data.tradeType+'</td>';
        rows += '<td>'+quantityQNT+'</td>';
        rows += '<td>'+priceNQT+'</td>';
        rows += '<td>'+total+'</td>';
        rows += '<td>'+data.buyerRS+'</td>';
        rows += '<td>'+data.sellerRS+'</td>';
      rows += '</tr>';
    });
    $("#tradeHistory").html(rows);
    
  });
      
  </script>
</body>
</html>

Para la solicitud de la API, como ya se ha indicado anteriormente, hemos limitado la respuesta a 10 entradas, mediante el establecimiento correspondiente de firstIndex y lastIndex. Además, la función includeAssetInfo, establecida como verdadera, mostrará el nombre y el decimal del activo. Esto, aparte de resultar de gran utilidad, hará que la llamada sea un poco más lenta, especialmente cuando estamos visualizando más de un activo.

En lugar de incluir includeAssetInfo podríamos hacer una llamada getAsset para recibir esos parámetros (podría ser recomendable cuando se está visualizando un activo), pero cuando estás mirando las últimas operaciones de una cuenta en lugar de un activo, esto puede ahorrar mucho tiempo y trabajo.

Los cálculos más importantes a mencionar para este script son: la marca de tiempo de Nxt, la cantidad y el precio. Todo se calcula como he explicado anteriormente.

Marca de tiempo (timestamp) de Nxt

Nxt tiene su propio timestamp. Nxt fue lanzado el 24 de Noviembre de 2013, a las 12:00h a.m. En Nxt este sería el timestamp 0. En Javascript sería el 1385294400 (puesto que Javascript empezó el 1 de Enero de 1970, a las 00:00:00), pero puesto JavaScript usa milisegundos, tenemos que multiplicarlo por 1000 para obtener el resultado. Así que al timestamp que nos propodrione Nxt debemos sumarle 1385294400 y añadir los milisegundos para obtener el timestamp en JavaScript.

El análisis de los datos históricos te proporcionará mucha información sobre la frecuencia de las operaciones y cuántas cuentas han estado negociando un activo. Cuanto más cuentas estén involucradas en el comercio, más extendido está el activo entre los compradores y vendedores, lo que generalmente es una buena señal. Por supuesto, tienes que ser consciente de que no sabes el origen de las cuentas. Es posible que una persona cree varias cuentas y haga múltiples transacciones con cada una de ellas. El activo parece tener más volumen del que realmente tiene, lo que parece beneficioso para el propietario del activo. Por otra parte, la gente podría crear varias cuentas para rastrear diferentes tipos de posesiones. En muchos casos, tiene sentido que un usuario tenga más de una cuenta.

El script anterior te mostrará una tabla como la que se muestra a continuación:

programming-nxt-4-1

Información de la cuenta

Como ya sabes, la blockchain es totalmente transparente; puedes ver cualquier transacción de la red y todas las posesiones de una cuenta en concreto. También te permite escribir mensajes cifrados, que no pueden ser leídos por nadie, excepto por aquel que tenga la contraseña del remitente o del destinatario.

El siguiente paso es descubrir cómo crear una interfaz agradable para ver las cuentas. Todos los pasos para conseguirlo se explican aquí.

La llamada a la API necesaria para obtener información de la cuenta es getAccount. También puedes utilizar getAccountAssets para monitorizar las tenencias de los activos, pero getAccount te mostrará todas las posesiones de una cuenta.

Una sugerencia: como en la API de getTrades, puedes decidir incluir más información con includeLessors, includeAssets, includeCurrencies or includeEffectiveBalance.

¡Disfrute programando con Nxt! En el siguiente artículo vamos a explorar la creación de transacciones y más detalles sobre la blockchain. Si tienes alguna pregunta, no dudes en ponerte en contacto conmigo a través del correo electrónico o de mi cuenta de Nxtforum.

Lea el siguiente artículo de esta serie>

Visite también: http://test.nxter.org/developers

Más artículos de esta serie:

Programando para Cripto-Plataforma Nxt #1: Configuración
Programando para Cripto-Plataforma Nxt #2: Primeras etapas
Programando para Cripto-Plataforma Nxt #3: Output desde el Intercambios de Activos

Programando en la Cripto-Plataforma Nxt #3 : Output desde el Intercambio de Activos

Programando en la Cripto-Plataforma Nxt #3: Output desde el Intercambio de Activos

La estrella de las Blockchains

Bienvenido al tercer artículo de programación con Nxt. En los artículos previos he mostrado cómo ajustar tu archivo de configuración Nxt para empezar a desarrollar fácilmente con JavaScript y cómo obtener la primera salida de datos de la blockchain. En este artículo, me gustaría continuar con una de las herramientas más utilizadas en Nxt: el Asset Exchange.

¿Qué es el Asset Exchange o Intercambio de Activos?

El Asset Exchange es un mercado de activos basado en la tecnología blockchain. Todo el mundo puede crear sus propios tokens en la blockchain. El activo puede representar cualquier cosa, ya se trate de servicios financieros, una campaña de crowdfunding, soporte para un sitio web, membresías, commodities o cualquier otra cosa que te puedas imaginar.

La ventaja de usar un token para un activo en la cadena bloques de Nxt es que directamente consigues una audiencia global, ya que ni Internet ni las monedas digitales, tales como Nxt o Bitcoin, no conocen fronteras. Otro beneficio que me gustaría destacar es que nadie necesita una cuenta bancaria real; una vez tienes tu primera moneda virtual es muy fácil moverse de un tipo a otro, y puesto que la tecnología blockchain es accesible para todos, no hay ninguna dificultad para moverla de una persona a otra. (Aun así, deberías informarte sobre tu jurisdicción local para asegurarte de que la creación de un activo está permitida.)

Cómo recuperar los primeros datos de Activos

Para obtener tus primeros datos, primero hemos de elegir un activo. Puedes ver una lista de todos los activos existentes en la red Nxt aquí:Mynxt.info/ lista de activos.
Una vez has elegido un activo, puedes ver el identificador (ID) del activo en la esquina superior izquierda. Necesitaremos el ID para obtener los datos de un activo (Asset). En este ejemplo, he escogido el activo SuperNET ya que se comercializa con frecuencia y tiene muchos datos históricos que podemos ver.

Recuerda que necesitas tener en marcha Nxt en tu sistema para continuar con el resto de este tutorial.

Primero, veamos los metadatos de un asset. El siguiente scrypt de comandos te proporcionará la salida de la configuración de activos original. Como siempre, te recomiendo la página http://localhost:7876/test cuando busques las llamadas de las API. En esta página puedes ver qué llamadas son para recibir datos (GET) o enviar datos (POST) a la blockchain. Empezaremos con las peticiones GET y la llamada getAsset.

Puedes utilizar esta scrypt para mostrar la información de los activos en tu página web, para una descripción general de los activos que se han creado a corto o largo plazo o sólo cómo lista personal de activos y sus funciones.

<!DOCTYPE html>
<html>
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
  <h2>Asset Data</h2>
  <table class="table table-striped">
    <thead>
      <tr>
        <th>Key</th>
        <th>Data</th>
      </tr>
    </thead>
    <tbody id="result">
      
    </tbody>
  </table>
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>

  <script>
      $.getJSON('http://localhost:7876/nxt', {"requestType": "getAsset", "asset": "12071612744977229797", "includeCounts": "true"}, function(request) {
        var rows;
        $.each(request, function(key, data) {
          rows += '<tr>';
          rows += '<td>'+key+'</td>';
          rows += '<td>'+data+'</td>';
          rows += '</tr>';
        });
        $("#result").html(rows);
      });
  </script>
</body>
</html>

El código anterior mostrará una tabla en su página HTML con la siguiente información

programming-nxt-3-1

Llegados este punto, quiero dedicar un poco de tiempo para enseñarte algunas abreviaturas en Nxt:

Verás dos variables “initialQuantityQNT” y “quantityQNT”. QNT significa “Cantidad“, la cantidad inicial es designada por el creador del activo. Como algunos de los activos pueden ser eliminados, el “quantityQNT” nos muestra cuántos activos existen en el momento. También necesitamos la variable “decimals”. El activo que estamos viendo tiene 4 decimales, lo que significa que el número de activos mostrados en la tabla necesita dividirse por 10.000 (4 ceros) para obtener el número real. El activo anterior cuenta con una cantidad  de 816.061.0000 activos.

“Account” es la cuenta numérica de Nxt del creador del activo y “accountRS” es el mismo identificador de cuenta en formato Reed-Solomon (RS).

“numberOfTrades”, “numberOfTransfers” y “numberOfAccounts” son calculadas en el momento en que se ejecuta la llamada.

Puede acortar la llamada de la API “getAsset” sin incluir “includeCounts”: “true” en la anterior llamada $ .getJSON, por lo que no recibirás el número de titulares del activo, las transferencias y operaciones, por lo que la llamada a la API será más rápida.

Órdenes de compra y venta

Después de conocer los detalles sobre el activo y obtener los metadatos, nos interesa saber si hay órdenes de compra o de venta para este activo y a qué precio se comercializa actualmente. Los métodos para utilizar los cálculos de cantidades o posiciones decimales de Nxt no siempre son los más óptimos. A veces, en este tutorial, escojo los métodos que son más comprensibles en lugar de los más óptimos. Por lo general, yo recomendaría hacer cálculos con los números originales de la API, porque no tendrás que ocuparte de los decimales y de ahí es de dónde provienen la mayoría de los errores. Las llamadas API que estamos utilizando para esto son: getAskOrders y getBidOrders. Una vez más, necesitamos el ID del activo para obtener las órdenes de compra y de venta del mismo. Además, acortaremos la salida agregando los parámetros firstIndex y lastIndex. Aquí está el código para obtener tanto las órdenes de compra como las de venta para el activo SuperNET:

Ask Orders

 

QuantityPriceTotal

Account

 

Bid Orders

 

QuantityPriceTotal

Account




programming-nxt-3-2

El script anterior se puede usar para visualizar los precios y las ofertas actuales de cualquier activo en tu página web, y para mostrar el libro de órdenes completo. Además, puedes utilizarlo para analizar las tendencias. Puesto que, además, dispones de todas las cuentas correspondientes a las ofertas y las demandas, puedes analizar las ofertas y obtener el número de cuentas que están operando en la plataforma.

Esta vez hemos tenido que hacer más consultas $.getJSON para obtener la información que queremos. Primero, necesitamos los decimales de los activos para hacer el cálculo sobre la cantidad, como mencionamos  en la primera llamada. En segundo lugar, queremos obtener tanto las órdenes de compra como las de venta. Esto necesita una consulta para cada una de las llamadas a la API.

También vemos una nueva variable que necesita una breve explicación. “PriceNQT” es el precio de un Activo por QuantityQNT.

El precio en la API se muestra en priceNQT por QuantityQNT. Entonces, ¿qué es NQT y cuál es la diferencia con QNT? NQT se refiere a NXTQuant, el número más pequeño que existe en NXT, que es 0,00000001 NXT (8 decimales). También tenemos que tener en cuenta los decimales, que tenemos que multiplicar de nuevo para obtener el precio real por activo. He utilizado la variable var NQTdivider = 8 – decimales; Para obtener el número por el que necesitamos dividir la cantidad para, de este modo, obtener el precio actual en NXT por cada Quantity.

Espero que hayas disfrutado con esta tercera entrega de “Programación en la Cripto-Plataforma Nxt”. En el próximo artículo, hablaré sobre los datos históricos y la información de la cuenta. Si tienes alguna pregunta, no dudes en ponerte en contacto conmigo a través de correo electrónico o de mi cuenta de NxtForum.

Lea el siguiente artículo de esta serie>

Visite también: http://test.nxter.org/developers

Más artículos de la serie:

Programación en la Cripto-Plataforma Nxt #1: Configuración
Programación en la Cripto-Plataforma Nxt # 2: Primeros pasos

Por Tosch

 

Programando en la Cripto-Plataforma Nxt #2

Programando en la Cripto-Plataforma Nxt #2: Primeros pasos

Sobre Nxt

¿Alguna vez has querido participar con tu propio software en el sector financiero sin correr grandes riesgos, contando con un acceso fácil y anónimo al mismo? ¿Alguna vez has intentado acceder a los sistemas monetarios y obtener datos fidedignos de la bolsa mercados o centros de datos en la nube? El software Nxt consiste en una cadena de bloques (Blockchain) entre pares (peer-to-peer) que permite un servicio financiero global, que puedes disfrutar en tu propio servidor u ordenador. No es necesario registro alguno ni ningún tipo de procedimiento burocrático.

¿Qué es la Blockchain de Nxt y qué aporta?

En los sistemas bancarios tradicionales te encuentras con bancos en los que depositas tu “confianza”, que amablemente se ofrecen a administrar tu dinero y tus bienes. Sin embargo, cuando quieres acceder a tu dinero no te dan facilidades. Especialmente, como desarrollador, no hay ninguna posibilidad de que puedas recuperar toda la información sobre tus posesiones ni que puedas acceder a los datos históricos de Wall Street de forma gratuita.

Con el sistema de cadena de bloques peer-to-peer, Nxt ha comenzado a construir un ecosistema centrado en la manipulación segura y transparente de los datos. Puedes iniciar tus propios servicios, crear divisas, crear activos y comercializarlos, beneficiarte de un mercado integrado, una nube de datos y ¡mucho más!

Comencemos

Con las siguientes líneas de código me gustaría enseñar cómo obtener un primer acceso a los datos de Nxt para, posteriormente, mostrar cómo añadir información a la cadena de bloques y obtener datos listos para utilizar en tu página web.

A partir de ese momento, podrás comenzar a construir todo lo que puedas imaginar alrededor de la blockchain, el libro de contabilidad y todas las herramientas de las que dispones.

Si todavía no has instalado Nxt, consulta aquí cómo instalar y configurar Nxt para comenzar a desarrollar.

“Hello World”

En este ejemplo, vamos a optar por la configuración más básica que nos permita mostrar los datos de la blockchain en nuestra página web.

Usaremos JQuery para simplificar la llamada a la API, pero puedes lograr los mismos resultados con otros frameworks o con un poco más de código.

Vamos a crear el primer archivo html, al que llamaremos transaction.html, dónde insertaremos el siguiente código.

<!DOCTYPE html>
<html>
<body>
  <div id="result"></div>
  <script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
  <script>
      $.getJSON('http://localhost:7876/nxt', {"requestType": "getTransaction", "transaction": "8520011591947303971"}, function(request) 
      {
        $("#result").html(request.attachment.message);
      });
  </script>
</body>
</html>

Nxt tiene una documentación API muy útil a la que se puede accede en http://localhost:7876/test. En este ejemplo estamos utilizando la llamada getTransaction, que también se puede probar en la página de la API.

Al ejecutar el script anterior, deberías recibir la siguiente respuesta en tu navegador:

Hello World Congratulations! You have received the first data from the blockchain.
Pero,¿qué ha pasado aquí?

En primer lugar, hemos utilizado la llamada API “getTransaction” que nos permite tener una visión detallada de la información de cualquier transacción que se encuentra en la blockchain. Echa un vistazo a la consola del navegador para ver toda la información de la transacción.

En el código anterior, hemos accedido al output o salida del mercado de la respuesta JSON que nos dio la API de Nxt. Aquí puedes ver todo el objeto devuelto desde la API.

{
                            "senderPublicKey": "7969c2ec61af9bedd3260c9b2cd4a292ba01ecbc2901a86851fa6c68208b0766",
                            "signature": "d13ad29034e56ae58b7f1eee4979cd6dffff38a7a26094c86103e431faf0bd06084be1e42534efd8e76b8a59c12630b52d851c571a25bc54af9ebdb56ca6df14",
                            "feeNQT": "100000000",
                            "requestProcessingTime": 0,
                            "type": 0,
                            "fullHash": "23bc3ae466293d7690b426173445e5b87423ea798b1d9c2913feda5d0d52a5b6",
                            "version": 1,
                            "phased": false,
                            "ecBlockId": "15499194118663359315",
                            "signatureHash": "9ea43451798a0144bd6cea58cbbba479c24ed7cdc29a4077a9aeb49a063498a7",
                            "attachment": {
                                "version.Message": 1,
                                "messageIsText": true,
                                "message": "Hello World",
                                "version.OrdinaryPayment": 0
                            },
                            "senderRS": "NXT-5RB8-KJD3-BT3B-E2QWW",
                            "subtype": 0,
                            "amountNQT": "10000000000",
                            "sender": "14876164227056393510",
                            "recipientRS": "NXT-P439-YVBD-VUEQ-A3S2T",
                            "recipient": "10124938546868029479",
                            "ecBlockHeight": 614717,
                            "deadline": 1440,
                            "transaction": "8520011591947303971",
                            "timestamp": 67508752,
                            "height": 2147483647
                        }

¿Por qué usar getJSON?

Como hemos estado utilizando getJSON la función Jquery, no necesitamos analizar más el JSON y podemos acceder directamente al JSON que nos devuelve la API de Nxt. Cuando se utiliza una llamada ajax o get method de JQuery, es posible que necesites enviar JSON.parse (request) para acceder al objeto.

La transacción 8520011591947303971que hemos accedido en el código, era una transacción que yo previamente había enviado. Todas las transacciones dentro de Nxt son transparentes y todo el mundo las puede ver. Echa un vistazo a la respuesta JSON de la Api de Nxt y con tu script en la mano ya puedes mostrar toda la información que te interese de cualquier transacción.

Reemplace request.attachment.message (por ejemplo, con request.accountRS) para que se muestre la identificación de la cuenta y continúa para dotar de una vista agradable a la información.

En los siguientes artículos te mostraré cómo enviar los primeros datos a la cadena de bloques, cómo recuperar datos de los Activos, cómo calcular los precios y cómo ver las órdenes abiertas

Alcanzando las estrellas

Nxt te apoya en la creación de un software que te permite el comercio global en una red peer-to-peer dónde cada participante es igual de importante. Comienza a construir cosas impresionantes con Nxt.

Lea el siguiente artículo de la serie:

Más artículos de la serie:

Programando en la Cripto-Plataforma Nxt #1

Visita también: http://test.nxter.org/developers

Programando en la Cripto-Plataforma Nxt #1

Programando en la Cripto-Plataforma Nxt #1: Configuración

Preparando el archivo de configuración

El archivo de configuración de Nxt es una herramienta importante que nos permite configurar el funcionamiento del cliente Nxt en tu ordenador. Con este archivo de configuración puedes ajustar el cliente Nxt para usar SSL, poner en marcha un nodo Nxt en una Raspberry Pi o configurar tu Nxt para el desarrollo, tal y como se muestra en el presente ejemplo.

El archivo de configuración

Ya dispones de un archivo de configuración dónde puedes ver todos los ajustes actuales

nxt/conf/nxt-default.properties

Si pretendes crear tus propios desarrollos, crea un archivo en nxt/conf/ y llámalo nxt.properties

Copia el código siguiente en tu archivo nxt.properties.

# Enable Cross Origin Filter for the API server.
nxt.apiServerCORS=true

# Enable Cross Origin Filter for NRS user interface server.
nxt.uiServerCORS=true

Si quieres desarrollar en la testnet deberás añadir:

# Never unlock your real accounts on testnet! Use separate accounts for testing only.
# When using testnet, all custom port settings will be ignored,
# and hardcoded ports of 6874 (peer networking), 6875 (UI) and 6876 (API) will be used.
nxt.isTestnet=true

En lugar de ejecutar Nxt por ti mismo, puedes optar por obtener información de cualquier otro nodo de la red Nxt. En mis ejemplos usaré http://localhost:7876, que es válido cuando estás ejecutando Nxt en tu ordenador o servidor local. Puedes encontrar una lista de otros nodos que podrías utilizar para mostrar datos en tu sitio web o acceder a Nxt a través de la webs que proporcionan acceso a la red Nxt, como por ejemplo Nxtpeers.com o PeerExplorer.com.

En lugar de usar http://localhost:7876, podrías, por ejemplo, introducir una IP como http://x.x.x.x: 7876 para obtener información de un nodo en lugar de en tu ordenador local.

Si deseas tener control sobre el nodo, la versión que ejecuta, la información a la que tienes permitido acceder o el número de conjuntos de datos que la API devuelve, tiene sentido que tengas en marcha tu propio nodo con la configuración personalizada.

Si estás buscando más información sobre la API, documentación y muchas cosas más, recomiendo visitar la Nxt Wiki.

Aquí puedes encontrar también cómo crear tu propio nodo público o cómo alojar tu nodo en el servicio AWS de Amazon.
Lee la siguiente parte de esta serie > …

Por: Tosch

También vea: http://test.nxter.org/developers

SuperNET se hace cargo del desarrollo y hosting de MyNxt

MyNxt.info hace tiempo que se ha convertido en un servicio muy apreciado por la comunidad Nxt. Ofrece una cartera móvil online, un sistema de plugins para la cartera Nxt, un explorador de bloques, un servicio de alerta de cuenta y mucho más. MyNxt.info fue dirigido por @abuelau pero desde hace un tiempo que se delegó a SuperNET. Esto conllevó un nuevo desarrollo, tal como una revisión generalizada de todos los servicios, actualizándolos para que funcionen con la última versión NRS y, también, con la intención de integrar los desarrollos de SuperNET, tales como Multigateway e InstanDEX, en forma de plugin para la cartera. Tosch y VanBreuk son los encargados de operar y desarrollar esta página web en nombre de SuperNET.

VanBreuk escribe:

Nuestro objetivo es hacer algo más que mantener el buen funcionamiento del servicio: queremos hacer de MyNxt una herramienta esencial para todos los miembros de la comunidad Nxt y de las otras criptocomunidades activas en SuperNet y más allá.

Por eso, queremos invitaros a todos a compartir vuestras opiniones sobre sugerencias y/o posibles mejoras de MyNxt

Desde que MyNxt funciona con la infraestructura de SuperNET, cuenta con el activo MyNxt en el intercambio de activos (activo ID 2176003302076381931).

Esta fue la noticia del anuncio



Desde noviembre de 2015, SuperNET administra el proyecto MyNxt, incluyendo el explorador de bloques, cartera en línea y el servicio NxtAD.

1 de Noviembre de 2015

SuperNET, con efectos desde el día 15, se hace cargo del servicio y de la iniciativa del explorador de bloques, MyNxt.info. Los servidores ya han sido migrados a la infraestructura de SuperNET, el desarrollo y la operación están ahora en manos de Tosch y VanBreuk. Ambos están involucrados en la comunidad Nxt desde el principio. Tosch como desarrollador php/js/aplicaciones python y VanBreuk como administrador del foro y técnico de muchos proyectos, incluyendo la Nxt Wiki y el servicio Multigateway.

Explorador de bloques

Una de las mayores ventajas de las criptomonedas es que, aparte de que cualquiera puede obtenerlas y ofrecen un alto nivel de anonimato cuando se usan correctamente, la blockchain sigue siendo totalmente transparente. Además de ofrecer la cartera en línea y otras herramientas, MyNxt proporciona una poderosa visión conjunta de las transacciones en la blockchain de la red Nxt y hará lo mismo para las otras criptomonedas en el futuro.

Desde hace más de un año, el explorador de bloques MyNxt está siendo el explorador de transacciones del ecosistema Nxt más estable y fiable. Puedes acceder en https://www.mynxt.info/blockexplorer/

Cartera Nxt

MyNxt está haciendo un trabajo excepcional acercando la tecnología blockchain a los nuevos usuarios. Ofrece una cartera en línea de código abierto y segura. Para registrarse solo es necesaria la dirección de correo electrónico y una contraseña. La cartera en línea MyNxt facilita el acceso a Nxt y permite aprender gradualmente a cualquier persona que quiera empezar a utilizar las criptomonedas. La cartera en línea está disponible en https://wallet.mynxt.info/

Plugins

Una de las características más importantes, desarrolladas en el último año, ha sido el sistema de plugins MyNxt. Una manera sencilla para los usuarios de activar herramientas adicionales en su cartera en línea. La arquitectura del plugin tiene un enorme potencial pero aún no ha recibido la atención que merece. Por esta razón, los nuevos planes de desarrollo del servicio tienen un fuerte enfoque en los plugins. Los desarrollos de SuperNET como el Multi Gateway, InstantDEX o Pangea Poker estarán disponibles en forma de plugin.

Hoja de ruta

 Se creó un nuevo plan de desarrollo por parte de SuperNET:

2015 Noviembre – Diciembre

  • Actualización del explorador de bloques Nxt con las actuales implementaciones. Esto incluye: La forja transparente, incremento de los meta-datos para el Intercambio de Activos y las herramientas para el Sistema Monetario, el Mercado Descentralizado y el sistema de Alias.
  • Discusiones comunitarias con el fin de seguir mejorando el explorador de bloques y para el desarrollo continuo de las herramientas de Mynxt, tales como: gráficos, la calculadora de forja, NxtAd o el servicio de alerta.

2015 Diciembre – 2016  Primer Trimestre 

  • Añadir potentes y fiables exploradores Blockchain para las otras monedas activas en la comunidad de SuperNET. Actualmente, el primero en la lista es BitcoinDark.
  • Mejorar la API de MyNxt para ofrecer a los desarrolladores un acceso más fácil a una amplio abanico funcional.

2016 Primer trimestre – Segundo trimestre

  • Incluir las características SuperNET en forma de plugins para la cartera MyNxt.
  • Crear plugins de nuevas herramientas que Nxt o SuperNET tengan para ofrecer.
  • Conectar la blockchain a la cartera MyNxt ofreciendo una integración completa a los usuarios de MyNxt. Esto permitirá una mayor funcionalidad. Por ejemplo: la compra de activos o el envío de mensajes cifrados desde la página del explorador de bloques.

Durante este tiempo, MyNxt ha trabajado para proporcionar un acceso más fácil a los desarrolladores. Puedes obtener más información en https://www.mynxt.info/apidocs/

MyNxt quiere dar a los desarrolladores buenas razones para utilizar su API, acogiendo las contribuciones y creando juntos la mejor documentación para los recién llegados al mundo de las criptomonedas y los desarrolladores avanzados.

Originalmente publicado en Nxtforum.org.

Participa en la discusión aquí:
https://nxtforum.org/news-and-announcements/(ann)-supernet-takes-over-mynxt-info-hosting-and-development/

Diseño Nxt 2.0

El software de referencia Nxt (NRS) recientemente ha completado con éxito un hardfork y ha sido actualizado a la versión NRS 1.7.5, lo que le ha aportado importantes y novedosas características tales como: tiempo de transacción establecido en 1 minuto, activos del tipo “Singleton”, mezclado de monedas, control de cuentas mediante transacciones condicionadas y datos en la nube. Todo funciona de manera estable y sin contratiempos, y por esto los desarrolladores del núcleo de Nxt han comenzado a hacer un brainstorming acerca de como deberá ser la futura versión NRS Nxt 2.0.

2.0 estará centrado en la escalabilidad. La idea es crear cadenas laterales dependientes de la blockchain principal.

Jean-Luc, desarrollador principal de Nxt, escribe:

Desde hace algún tiempo hemos estado haciendo brainstorming sobre el diseño de Nxt 2.0, y aquí presentamos nuestra propuesta actual. Este es un resumen general, del cual todavía desconocemos muchos detalles. Las decisiones de diseño más específicas se irán tomando conforme se avance en el desarrollo. Lo que proponemos es un cambio significativo en la plataforma, no solamente en un conjunto de nuevas características. Por tanto, nos llevará bastante tiempo para materializarlo.

– Se creará una nueva cadena principal, en la cual NXT se convertirá en un token (“forgingNXT” o “fNXT”) usado únicamente para forjar. El actual ecosistema NXT se transformará en una cadena hija (child chain), conservando todas sus características y propiedades, excepto la capacidad para forjar. En el bloque en el que se produzca el hard-fork, cada propietario de NXT verá sus NXT convertidos en ambos tokens en proporción 1:1 y todas sus propiedades se migrarán a esta “child chain” de NXT.

– Siempre será posible intercambiar NXT por fNXT, de modo que los pequeños inversores que no estén interesados en la forja pueden optar por vender sus fNxt a los grandes accionistas que ejecutan nodos de forja. Esto nos llevaría a una cierta centralización, pero también a un mayor porcentaje de poseedores de fNXT forjando, asegurando así el ecosistema completo de NXT.

– Las “child chains” usarán el mismo código que Nxt pero, en caso que así se quiera, cada una puede ser configurada para que solo disponga de una parte de las características. En la “child chain” de NXT se podrá seguir realizando cualquier tipo de transacción.

– Cada “child chain” tendrá su propio token / moneda, con la cual se realizarán las operaciones de pago, se establecerán las órdenes de compra y venta de activos, se pondrá precio a los bienes digitales, etc. Las comisiones de transacción de la “child chain” serán también en este token nativo.

– Todas las transacciones de todas las cadenas deberán ser procesadas por todos los nodos. Todos los nodos van a acarrear todas las “child chains” durante al menos los últimos 1440 bloques. Los nodos de archivos (archival nodes) pueden optar por almacenar una o más “child chains” durante un periodo más largo de tiempo, o hacerlo indefinidamente.

– Por defecto, las transacciones realizadas en las “child chains” se “podarán” completamente después de 1440 bloques, en aquellos nodos no específicamente configurados para archivarlas por más tiempo. Un nuevo nodo que inicie la descarga de la blockchain desde cero debe aceptar que si los forjadores y los nodos (que estaban ejecutando la blockchain en el momento en que todavía disponían de los datos que posteriormente iban a ser recortados) aprobaron esas transacciones con anterioridad, entonces el resultado de esas transacciones es válido, incluso aunque la información para validarlas de nuevo ya no esté disponible.

– Sin embargo, tiene que poderse validar que el balance efectivo fNXT de los forjadores era realmente el que decían tener. Esta es la razón por la cual las transacciones en la cadena de forjado que cambia el saldo fNXT no pueda podarse, y debe reducirse a un mínimo esencial de transacciones.

– Los bloques de la “child chain” se implementarán como un añadido “podable” de una única transacción (una por cada bloque y por cadena) del tipo “ChildchainBlock” en la cadena de bloques principal. Cualquiera puede crear un bloque en una “child chain”. Sin embargo, depende de los forjadores que incluyen bloques en la cadena principal decidir si esa transacción “ChildchainBlock” debe ser incluida en un bloque. Los forjadores, al igual que todos los nodos, hacen una validación completa de todas las operaciones de la “child chain” incluidas en un ChildchainBlock, siempre y cuando los datos no han sido “podados” todavía.

– Si no ha habido transacciones en una cadena, no hay necesidad de crear una transacción “childchainblock” para ella, a diferencia de lo que sucede en la cadena principal, donde seguiremos teniendo los bloques cada 60s incluso aunque estén vacíos. Podemos pensar en reducir el tiempo de generación de bloques de la cadena con el fin de permitir que algunas “child chains” tengan bloques más frecuentemente.

– Los forjadores aceptarán las comisiones solo en fNXT, con la comisión mínima requerida por el protocolo para cada tipo de transacción también expresada en fNXT.

– Cuando un forjador incluye una transacción del tipo “ChildChainBlock” en la cadena principal, su creador paga una comisión en fNXT al forjador. El importe de esta comisión depende del creador del bloque en la “child chain”, pero debe ser al menos igual al total de las comisiones mínimas calculados en fNXT para cada transacción incluida. A cambio, el creador del bloque en la “child chain” recibe la comisión en el token nativo de esa “child chain”, pagado por los emisores de esas operaciones en esa “child chain”.

– La tasa de intercambio del token/moneda de la “child chain” al token fNXT será determinado por la ley de oferta y demanda. Si nadie estuviese dispuesto a incluir una operación de la “child chain” en un bloque de esa “child chain” significaría que la tarifa ofrecida en el token nativo no se considera equivalente a la comisión mínima fNXT requerida para esta transacción en particular, y dicha transacción expiraría sin confirmarse. Si el valor de la token nativo de la “child chain” se reduce a cero, nadie estará dispuesto a crear bloques de la “child chain”, y el proceso de las transacciones en esta “child chain” se detendrá.

– Las “child chains” competirán entre sí para su inclusión en un bloque, ya que al final los forjadores observarán la relación comisión / tamaño para cada transacción y querrán maximizar sus beneficios durante el forjado, dependientes del tamaño de bloque y del límite del número de transacciones.

– Antes de la “poda” cada nodo debe comprobar no sólo que el hash de la operación del bloque de la “child chain” coincide, sino que también debe comprobar si son válidas todas las transacciones de la “child chain” que contiene, es decir, asegurarse de que no hay ningún doble gasto, así como el resto de validaciones. Por eso el nodo necesita saber los saldos actuales de todas las cuentas de esa “child chain”. Pero todavía para poder hacer la poda necesitamos una operación de captura, que tome una instantánea del estado únicamente de la “child chain” en su estado actual, sin el historial de las operaciones que la llevaron a este estado. A continuación, después de que esta transacción ha sido aceptada en la blockchain por más de 720 bloques, podemos asumir que es válida, “podar” toda el historial de la cadena antes de esa captura, y desechar la captura anterior.

– La operación de captura para cada “child chain” se crea en intervalos regulares, tales como cada 1440 bloques, y se llevan a cabo por el forjador del bloque actual. Sólo contendrá el hash de la captura, no se capturarán todos los datos.

– Los datos de la captura en sí mismos no tienen que propagarse a través de la red cuando se crea la transacción de captura. Cada nodo que se encuentre actualizado ya cuenta con el estado de la “child chain” capturada, por lo que puede generar una captura por sí mismo. Sólo se debe validar que el hash calculado para el forjador de la captura de hecho coincide con su propia captura.

– Solo nodos que descargan la cadena de bloques desde cero necesitarán descargar la última captura al completo, y esta es una razón más por la que cada nodo debe generar y mantenerse alrededor de esta captura, para poder servir a estos nuevos nodos. La descarga de la captura puede ser de una manera similar a Torrent, diferentes piezas desde múltiples nodos.

– Debido a que cada nodo actualizado necesita validar todas las transacciones actuales, aún a pesar de que reducimos significativamente el problema a largo plazo de crecimiento de la blockchain (en términos de espacio en disco utilizado, y ancho de banda para descargar el blockchain desde cero), todavía habrá un cuello de botella en términos de la CPU, para procesar los datos de todas las cadenas, y el ancho de banda, para poder recibir y procesar las transacciones actuales de todas las cadenas. Pero puesto que los nodos no necesitan validar las antiguas operaciones en la “child chain” que ya han sido “podadas”, la descarga total de la blockchain desde cero debe ser más rápida y menos intensiva para la CPU.

– La cadena de forjado, que es común a todos los nodos, garantiza la seguridad incluso para las “child chain” que no tengan muchos usuarios y que tienen transacciones sólo ocasionalmente. A cambio cada una de las “child chains” podrá ser podada. Las “child chains” ya no necesitan conservar todo el historial de transacciones remontándose hasta el bloque génesis para ser seguras, porque no forjan..

– Como primer paso, vamos a empezar solamente con la cadena principal de forja, con la cadena NXT como única “child chain” de la anterior. Y tal vez una “child chain” en modo de pruebas. Una vez que las tengamos funcionando, implementaremos las características necesarias para ser capaces de crear dinámicamente nuevas “child chain”, o modificar las propiedades de las “child chains” existentes.

Este artículo está publicado originalmente en nxtforum.org.

Author: Jean-Luc. Participa en la discusión aquí:
https://nxtforum.org/core-development-discussion/nxt-2-0-design/

o en la sección en español del foro:

https://nxtforum.org/espanol-(spanish)/diseno-nxt-2-0/

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).

Cómo mercadear una organización descentralizada de código abierto

nxt-evildave

Por: Dave ‘EvilDave’ Pearce

Orígenes de la Fundación Nxt….

Una de las grandes fortalezas de Nxt, y de la comunidad Nxt en general, es que siempre se ha pretendido, desde el inicio del concepto de Nxt en adelante, que Nxt sea una comunidad fuertemente descentralizada.

El libro “La estrella de mar y la araña” de Ori Brafma, refleja una guía de gran utilidad sobre los principios básicos de una organización descentralizada.  https://en.wikipedia.org/wiki/The_Starfish_and_the_Spider

Una organización descentralizada puede estar bien para ciertas aplicaciones (como por ejemplo un movimiento activista) pero, para un sistema de software que necesita interactuar con la comunidad empresarial en general, ¿cómo puede la descentralización trabajar de manera efectiva?

Este asunto afloró desde los inicios del desarrollo de Nxt, dando lugar a más profundas preguntas:

  • Nxt es un brillante sistema que permite la construcción de aplicaciones de negocios, pero, ¿cómo conseguir que un negocio se ponga  en contacto con un movimiento descentralizado como la comunidad Nxt?
  • ¿Cómo establece una empresa un acuerdo legal con Nxt? o ¿recibe apoyo?
  • ¿Cómo puede Nxt promocionarse para los negocios o como puede Nxt llevar a cabo una campaña de PR?

Las respuestas a todo lo anterior llevó a la puesta en marcha de la Fundación Nxt que (si volvemos a la analogía de la “Estrella de mar”), puede ser visto como un órgano especializado para Nxt; una pierna extra para la estrella de mar.

forkpay-banner3

La Fundación fue creada para actuar como una subsección del ecosistema Nxt. Es responsable de la vinculación de la comunidad de código abierto descentralizada de Nxt, con la corriente principal del mundo de los negocios y las finanzas centralizadas. En efecto actúa como puerta de enlace entre el mundo de la criptografía descentralizada y las principales corrientes de negocios, finanzas y gobierno.

La fundación se inició (informalmente) por un grupo de veteranos de la joven comunidad Nxt  a mediados del 2014. El personal involucrado fue: Tai ‘Tai Zen’ Duong, David ‘EvilDave’ Pearce, Bas ‘Damelon’ Wisselink, Dirk ‘LocoMB’ Reuter y Ian ‘Chanc3r’ Ravenscroft. Como corresponde a un organizativo descentralizado, los miembros fundadores iniciales representaban una amplia gama de puntos de vista y poseían una amplia gama de habilidades.

Este grupo se reunió por primera vez, en la vida real, como representantes de Nxt en la innovadora conferencia Bitcoin 2014 celebrada en Ámsterdam y, funcionaron tan bien juntos que decidieron continuar bajo el informal estandarte de la Fundación Nxt.

En un principio, simplemente el pequeño grupo estaba pensado para ser un punto de contacto para las empresas, la Fundación Nxt ha demostrado ser muy útil para Nxt, y comenzó a evolucionar hacia una unidad de negocio en toda regla, con muchas más responsabilidades.

La Fundación fue registrada e incorporada, a inicios de 2015, como una empresa sin fines de lucro en los Países Bajos (Holanda), bajo el título de ‘Stichting Nxt/Nxt Foundation’ con el objetivo de apoyar la expansión y el desarrollo de Nxt.

Desde entonces, la Fundación Nxt ha seguido funcionando como punto de contacto para las empresas que deseen trabajar con Nxt. También ha asumido otras responsabilidades: la compra y mantenimiento de software esencial; tales como los certificados SSL y la firma de código, licencias de hosting y desarrollo para sitios relacionados con el núcleo de Nxt.

Más recientemente, la Fundación identificó algunas áreas que necesitaban ser mejoradas dentro Nxt y, puso en marcha el proyecto de Tennessee para hacer frente a esas áreas.

Entrando a Tennessee…

Hacia mediados de 2015, se hizo cada vez más evidente que Nxt necesitaba cambiar para satisfacer las demandas del, tan volátil, mercado de las criptomonedas. Muchos de los jugadores principales fueron entrando en el mercado, trayendo con ellos, desde la corriente del mundo de los negocios / finanzas, un enfoque más profesional para la gestión de los proyectos y un enfoque mucho más agresivo para las campañas de marketing y relaciones públicas.

Un proyecto descentralizado (y algo insuficientemente financiado) que requería un trabajo voluntario, como Nxt, no puede competir, a nivel de igualdad, con las campañas profesionales de marketing y de relaciones públicas empleadas por una nueva ola de proyectos relacionados con criptomonedas.

Los proyectos individuales basados en Nxt, usualmente con un grupo de pequeños líderes o un jefe de proyecto ya definido, pueden elegir por si mismos si siguen o no esta tendencia, o cómo responder a los cambios del mercado pero, para el núcleo Nxt (y, en general, para la comunidad Nxt) tenía que encontrarse una solución  para hacer frente a esta situación.

El proyecto Tennessee fue propuesto de esta manera: la Fundación Nxt analizó y explicó a la comunidad la situación actual del mercado y pidió una donación para un fondo administrativo de la Fundación – configurado exclusivamente para profesionalizar y mejorar dos elementos básicos del proyecto Nxt (CORE): Marketing / PR y la experiencia del usuario. El presupuesto estimado para ejecutar Tennessee durante un año (sobre la base de dos empleados a tiempo parcial) fue aproximadamente de  $ 70 mil, equivalente a 10 millones de NXT.

tnsse-crowdfunding-nxt

Esta suma se consiguió a través de crowdfunding (utilizando el Sistema Monetario Nxt) durante un periodo de 2 semanas y Tennessee se puso en marcha a principios de Noviembre de 2015.

TNSSE existe oficialmente desde hace menos de 4 semanas y hasta el momento dispone de:

Sueldos estipulados para las dos principales personas de Tennessee (trabajadores a tiempo parcial) durante los próximos 12 meses, asegurando que, durante ese tiempo habrá una presencia coherente de marketing / PR para Nxt.

Contrato con John Mcleod, consultor de contactos en los medios de comunicación (media contact consultant), con sede en Reino Unido. El contrato es inicialmente de 3 meses, pero con la posibilidad de extender ese periodo. La función de John es buscar y cultivar, de manera proactiva, la corriente principal (mainstream) y los principales medios de comunicación sobre criptomonedas, para Tenessee y Nxt.

Con la ayuda de John, Tennessee ha creado y publicado 2 los artículos sobre los aspectos de Nxt durante la última semana:

https://news.bitcoin.com/interview-nxt-foundations-dave-pearce/

http://allcoinsnews.com/2015/11/21/nxt-foundation-positions-platform-to-entirely-replace-legacy-banking-systems/

También hizo una entrevista de radio:
https://www.mixcloud.com/Resonance/password-18-11-15/

Estas tres piezas son sólo el comienzo de la campaña en los medios de comunicación. TNSSE permite a Nxt construir relaciones de más largo plazo con los medios de comunicación, y estas relaciones darán lugar a más información periódica sobre Nxt, apareciendo en los principales medios de comunicación criptográficos.

Tennessee, también ha iniciado el proyecto de revisión de la presencia de Nxt en la web, www.nxt.org será el primer sitio web en ser actualizado usando, como contratista externo, a Farla Webmedia.

La nueva web www.nxt.org contará con un rasgo importante: un sistema de asistencia fácil de usar, proporcionando a Nxt una ventaja única sobre todos los demás criptoproyectos.

La Fundación Nxt junto al proyecto Tennessee, ha comenzado a trabajar en una estrategia de asistencia a la conferencia, para el año siguiente. Una conferencia centrada en las propuestas de Nxt para la primera mitad de 2016 y la presencia de Nxt en el próximo evento d10e, en Ámsterdam.

http://www.d10e.org/#amsterdam

Así que, volviendo a la pregunta inicial: ¿cómo una comunidad descentralizada puede promocionarse al mundo exterior?

Nxt ha demostrado, con la creación de la Fundación Nxt y posteriormente con el proyecto Tennessee, que los sistemas especializados creados de forma orgánica pueden configurarse para cumplir con esta función específica, sin sacrificar nada de franqueza ni descentralización que otorga a la comunidad Nxt un alto grado de  flexibilidad y fuerza.

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.

Lista clasificada de activos

El propósito de esta lista no es jugar a ser policía, sino proporcionar a los recién llegados, una guía de los activos Nxt. La lista ha sido revisada detalladamente, considerando “operativos” todos los proyectos aquí presentes. Si usted tiene alguna duda o sugerencia, o considera que su proyecto debería de estar en la lista, siéntase libre en comunicarlo – Agosto 2016-

¿Eres nuevo con el AE? Considere leer estos artículos antes:

Para más información sobre el comercio de los activos, visita https://www.mynxt.info/assets

Listado de activos

  • Criptomonedas – Sin pago de dividendos
  • Grupo de activos JL777 – Con pago de dividendos
  • Proyectos conjuntos SN y NXTventure
  • Multigateway
  • Inversión – Fondos de inversión
  • Inversión – Con pago de dividendos
  • Inversión – Empresas físicas
  • Aplicaciones – Con pago de dividendos
  • Proyectos de apoyo a NXT

AE_banner

Criptomonedas (5) Tipo: Sin pago de dividendos

* Por favor, notifique inmediatamente si encuentra un error, un enlace roto o si nota la ausencia de algún activo en esta categoría.

Grupo de activos JL777 (7) Tipo: Con pago de dividendos

* Por favor, notifique inmediatamente si encuentra un error, un enlace roto o si nota la ausencia de algún activo en esta categoría.

Proyectos conjuntos. SN & NXTventure (4)

* Por favor, notifique inmediatamente si encuentra un error, un enlace roto o si nota la ausencia de algún activo en esta categoría.

Multigateway  (9)

  • MGW → ID: 10524562908394749924
  • superBTC (Bitcoin) → ID: 12659653638116877017
  • superLTC (Bitcoin) → ID: 125609428220063838
  • superBTCD (Bitcoindark) → ID: 6918149200730574743
  • superVRC (Vericoin) → ID: 9037144112883608562
  • superBITS (Bitstar) → ID: 13120372057981370228
  • superDOGE (Dogecoin) → ID: 16344939950195952527
  • superINFX (Influxcoin) → ID: 5378783389140157313
  • superSYS (syscoin) → ID: 15767200156607801771

* Por favor, notifique inmediatamente si encuentra un error, un enlace roto o si nota la ausencia de algún activo en esta categoría.

Inversión (2+1) Tipo: Fondos de inversión

* Por favor, notifique inmediatamente si encuentra un error, un enlace roto o si nota la ausencia de algún activo en esta categoría.

Inversión (12) Tipo: Con pago de dividendos

* Por favor, notifique inmediatamente si encuentra un error, un enlace roto o si nota la ausencia de algún activo en esta categoría.

 

Inversión (3) Tipo: Empresas físicas – Con pago de dividendos

* Por favor, notifique inmediatamente si encuentra un error, un enlace roto o si nota la ausencia de algún activo en esta categoría.

Aplicaciones (4) Tipo: Con pago de dividendos

* Por favor, notifique inmediatamente si encuentra un error, un enlace roto o si nota la ausencia de algún activo en esta categoría.

Proyectos de apoyo a NXT (5) Tipo: apoyo al ecosistema Nxt

* Por favor, notifique inmediatamente si encuentra un error, un enlace roto o si nota la ausencia de algún activo en esta categoría.

Nota:  La lista de activos está hecha con la mejor intención posible, basándose en activos con volumen y comprobando, uno a uno, su transcurso hasta la fecha de hoy (Agosto 2016).

Es difícil saber quién está detrás de cada proyecto y si decide cumplir, o no, lo establecido. Por favor, antes de invertir, haga su propia investigación.

Nxter.org paga en Nxterpoints (NXTP) por la actualización de los activos

Además, si usted es emisor y desea una mención especial para su activo, por favor, póngase en contacto con nosotros.
———————————

La información contenida en este artículo no constituye (ni pretende constituir) cualquier forma de consejo, recomendación, representación o aprobación por parte del autor, del traductor 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