Dominio Steem con JavaScript: Lección n.° 1: Introducción a la cadena de bloques Steem y a los nodos RPC
Portada diseñada con Canva
1- ¿Qué entiendes sobre los nodos RPC?
Gracias a mi llegada a Steemit he adquirido grandes conocimientos acerca de la tecnología blockchain, ya que esto anteriormente era totalmente desconocido para mi, pero he aprendido de su gran utilidad e importancia en el mundo digital. La blockchain es una es una red descentralizada de nodos, los cuales se comunican entre si, en esta los datos son almacenados en bloques que se vinculan entre sí, formando esta cadena.
Las principales y mas valiosas características de la blockchain es la descentralizacion y la Inmutabilidad de los datos, es decir que nada puede cambiarse o alterarse, y para que esto sea posible, se requiere de un componente que permita establecer esta comunicación entre nodos. Aquí es donde comenzamos a profundizar en la función de los los nodos RPC (Remote Procedure Call).
Los nodos RPC es un punto en una red que permite a las aplicaciones realizar llamadas a procedimientos que se ejecutan en otro sistema, es decir, que estos nodos, actúan como una especie de mensajeros o intermediarios que agilizan las solicitudes y las respuestas entre los nodos de una red de cadenas de bloques.
El proceso que cumplen los nodos RCP es el siguiente:
entre los usuarios y la blockchain
1- El usuario envía solicitudes a los nodos RPC.
2- Al recibir esta solicitud, los nodos RPC transmiten dicha solicitud a la blockchain.
3- La blockchain al recibir la solicitud de parte de los nodos RCP, procede a ejecutar las operaciones.
Como es bien sabido, la blockchain es una gran red de nodos que se comunican entre si. Existen diferentes tipos de nodos y cada uno de ellos cumple un rol especifico en la cadena, sin embargo, los nodos RCP cumplen una función única y es que son los encargados establecer un puente entre una cadena de bloques y las aplicaciones externas a la red.
Se podría decir que el principal propósito de un nodo RPC es facilitar las operaciones de lectura y escritura en una cadena de bloques por medio de la exposición de una API con la que las aplicaciones pueden interactuar, permitiendo recuperar información como saldos de cuentas, datos de contratos inteligentes, detalles de transacciones, entre otros.
Explora el Portal de desarrolladores de Steem ( https://developers.steem.io ) y obtén datos usando JavaScript o Python desde al menos 3 métodos del complemento condenser_api
Ingrese al portal de desarrolladores de Steem, el cual estoy visitando y explorando por primera vez y en el cual puedo observar que es un sitio que esta específicamente diseñado para ayudar a aquellos interesados en el desarrollo de aplicaciones en la cadena de bloques Steem.
Cuenta con una interfaz muy sencilla y amigable en el cual se le da la bienvenida a los visitante y se especifica que hay disponible varios tutoriales para lograr que se familiaricen con los conceptos básicos de la interacción con las API de Steem en Javascript, Python y Ruby.
Ademas, cuenta con la sección sección API de APPBASE en la cual encontramos los diferentes Plugins disponibles en la API de Steem.
1- condenser_api.get_active_witnesses
Al explorar el portal para desarrolladores de Steem, utilice el método active_witnesses para obtener datos usando JavaScript, a través de esta llamada obtendremos un listado con los 21 testigos activos.
Al ejecutar podemos visualizar el resultado de esta consulta y obtenemos la lista de los testigos activos.
2- condenser_api.get_chain_properties
A través de este método podemos obtener toda la información acerca las propiedades de la cadena.
Al ejecutar podemos visualizar el resultado de esta consulta y obtenemos la informacion acerca de las propiedades de la cadena de Steem.
3- condenser_api.get_hardfork_version
Con este este método podemos obtener la informacion acerca de la version actual del hardfork.
Al ejecutar el código, podemos visualizar que la version actual es :0.23.0.
Obtenga la información de un bloque aleatorio entre 1.000.000 y 1.500.000 y escriba un programa que muestre quién creó ese bloque y la fecha en que fue creado.
A continuación, les comparto el código en Javascrip para consultar el nombre del minero y la fecha en la que se produjo un bloque, el cual sera consultado aleatoriamente entre el rango 1.000.000 y 1.500.000.
En este he creado una función que me permita llamar al plugin condenser_api y al método de la API de Steem get_block, el cual nos permite obtener la información acerca de un bloque.
Este bloque va a ser seleccionado aleatoriamente mediante la utilización de la siguiente instrucción:
const blockaleatorio = Math.floor(Math.random() * (1500000 - 1000000 + 1)) + 1000000;
De esta forma, nos aseguraremos de que en cada consulta, el bloque sea seleccionado aleatoriamente.
Al ejecutar nuestro código, nos va a arrojar la información del numero de bloque, el nombre de quien produjo ese bloque y la fecha.
Si volvemos a ejecutar el código, vemos que nos arroja los datos de otro bloque, y se comprueba que la consulta se esta realizando aleatoriamente y que se esta cumpliendo el criterio establecido en esta asignacion.
Saludos amiga gracias por la invitación, una tarea bastante extensa pero la cual realizaste detalladamente sin obviar ningún detalle, te deseo muchos éxitos y gracias por la invitación.