NXTER.ORG

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

 

View this in: English Français Русский

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.