{"id":31870,"date":"2020-06-24T11:43:18","date_gmt":"2020-06-24T09:43:18","guid":{"rendered":"https:\/\/xitaso.com\/?p=31870"},"modified":"2021-09-23T13:18:37","modified_gmt":"2021-09-23T11:18:37","slug":"pago-por-uso-en-la-industria-primeros-pasos-con-eosio","status":"publish","type":"post","link":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/","title":{"rendered":"Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO"},"content":{"rendered":"<div class=\"wpb-content-wrapper\" id=\"wpb-content-root\"><p>[vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_column_text]<strong>En la cuarta revoluci\u00f3n industrial, los modelos de negocio existentes se est\u00e1n poniendo patas arriba. As\u00ed, quienes desean seguir teniendo \u00e9xito deben mantener el pulso con la ayuda de las nuevas tecnolog\u00edas y encontrar nuevos modelos de negocio para ellos. Los proveedores de la nube m\u00e1s conocidos, como Azure y AWS, ya est\u00e1n familiarizados con los modelos de negocio basados en los servicios, como el pago por uso (en ingl\u00e9s, \u00abpay-per-use\u00bb). En el entorno industrial, si las m\u00e1quinas y sus componentes se consideran una composici\u00f3n din\u00e1mica y no est\u00e1tica, es posible establecer paralelismos con la nube.<!--more--> A su vez, como todos los componentes de una f\u00e1brica est\u00e1n interconectados, es muy importante establecer una plataforma interoperable y neutra en lo que al fabricante se refiere, no solo para establecer la comunicaci\u00f3n entre los componentes, sino tambi\u00e9n para garantizar un almacenamiento seguro de los datos. Y es aqu\u00ed donde entra en juego el protocolo blockchain.<\/strong>[\/vc_column_text][vc_column_text]En esta entrada del blog, hablaremos de c\u00f3mo utilizar el protocolo blockchain EOSIO para incorporar un prototipo para la facturaci\u00f3n de servicios por uso en un entorno industrial.[\/vc_column_text][vc_empty_space][vc_column_text]<\/p>\n<h2>El caso pr\u00e1ctico concreto<\/h2>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_column_text]En el modelo de negocio de pago por uso, los operarios de m\u00e1quinas ya no compran las m\u00e1quinas al fabricante, sino que solo pagan por el uso real que hacen de ellas. Esto supone diversas ventajas, tanto para el operario como para el fabricante. <sup><a id=\"fnref-1\" href=\"#fn-1\">1<\/a><\/sup>[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_column_text]El abanico de prestaciones puede abarcar desde el simple giro de un motor hasta un complejo servicio digital. Ahora bien, una planta de una f\u00e1brica est\u00e1 formada por varias m\u00e1quinas individuales y estas, a su vez, por varios componentes de diferentes fabricantes. Todos ellos interact\u00faan entre s\u00ed y utilizan los servicios de los otros, lo que significa que estos componentes tambi\u00e9n se facturan mutuamente las prestaciones realizadas. Un componente puede ser una m\u00e1quina, pero tambi\u00e9n un peque\u00f1o sensor.<\/p>\n<p>Para nuestro prototipo, nos centraremos en un componente que servir\u00e1 de ejemplo: un motor que ofrece revoluciones como servicio. \u00bfPero c\u00f3mo se puede almacenar de forma segura la facturaci\u00f3n de este servicio?<br \/>\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space][vc_column_text]<\/p>\n<h2>\u00bfPor qu\u00e9 blockchain?<\/h2>\n<p>Si cada fabricante almacenara sus datos en su propio sistema y facturara a todos sus clientes en un momento determinado, esto tendr\u00eda ciertas desventajas. Por ejemplo, nadie podr\u00eda comprobar si el fabricante est\u00e1 facturando todo realmente de forma correcta y no est\u00e1 enga\u00f1ando a sus clientes. Esto da lugar a un problema fundamental que las tecnolog\u00edas de registro distribuido (DLT, del ingl\u00e9s \u00abdistributed ledger tecnologies\u00bb) intentan resolver: crear confianza all\u00ed donde no existe. Y es que, al tratarse de una cuesti\u00f3n financiera, no suele existir una confianza plena entre el fabricante y el operador.<\/p>\n<p>Las DLT y, por lo tanto, tambi\u00e9n blockchain, no solo crean esa confianza a trav\u00e9s de algoritmos de consenso y procedimientos criptogr\u00e1ficos, sino que tambi\u00e9n ofrecen la ventaja de estar descentralizados. As\u00ed pues, no hay un punto \u00fanico de fallo. En consecuencia, si un fabricante decide que no quiere seguir participando o si un servidor tiene un problema t\u00e9cnico, los datos siguen existiendo distribuidos en todas las dem\u00e1s partes implicadas.<\/p>\n<p>Por lo tanto, las caracter\u00edsticas m\u00e1s importantes que ofrece blockchain para el caso que nos ocupa son las siguientes:<\/p>\n<ul class=\"chevron\">\n<li>Almacenamiento descentralizado de los datos<\/li>\n<li>Protecci\u00f3n contra falsificaciones<\/li>\n<li>Reproducibilidad<\/li>\n<\/ul>\n<p>Tambi\u00e9n existen otras ventajas y desventajas que no analizaremos en este punto.[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space][vc_column_text]<\/p>\n<h2>C\u00f3mo desarrollar una aplicaci\u00f3n descentralizada (DApp)<\/h2>\n<p>Al principio, es importante saber las tecnolog\u00edas que van a utilizarse para la aplicaci\u00f3n. La elecci\u00f3n final depende en gran medida del uso previsto, pues cada tecnolog\u00eda tiene sus propios puntos fuertes y d\u00e9biles. A continuaci\u00f3n, hemos optado por la tecnolog\u00eda <em>EOSIO<\/em>. <sup><a id=\"fnref-2\" href=\"#fn-2\">2<\/a><\/sup>[\/vc_column_text][vc_column_text]Se trata de una tecnolog\u00eda basada en la criptomoneda EOS que la empresa <em><a class=\"extern\" href=\"https:\/\/b1.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">block.one<\/a><\/em> ha desarrollado como proyecto de c\u00f3digo abierto. La <em>Initial Coin Offering<\/em> se prolong\u00f3 durante todo un a\u00f1o y, con 4100 millones de d\u00f3lares recaudados, ostenta un r\u00e9cord en este \u00e1mbito. El desarrollo del software blockchain, as\u00ed como las inversiones en las empresas emergentes de EOSIO, se financian a trav\u00e9s de este medio.<\/p>\n<p>EOSIO presenta b\u00e1sicamente una estructura muy modular y utiliza el patr\u00f3n de dise\u00f1o para plugins, lo que hace que sea relativamente f\u00e1cil para los desarrolladores personalizar a su gusto el software de los nodos de la red blockchain (que reciben el nombre de <em>\u00abnodeos\u00bb<\/em>). Pero la arquitectura de software de los contratos inteligentes tambi\u00e9n est\u00e1 muy modularizada en blockchain. En s\u00ed, EOSIO cuenta con un algoritmo de consenso de prueba de participaci\u00f3n delegada (DPoS, del ingl\u00e9s \u00abdelegate proof of stake\u00bb). <sup><a id=\"fnref-3\" href=\"#fn-3\">3<\/a><\/sup> Este se incorpora a su vez a trav\u00e9s de los llamados contratos inteligentes del sistema (en ingl\u00e9s, \u00absmart contracts\u00bb). Por lo tanto, los propios desarrolladores son los que deciden si desean utilizar dicho algoritmo u otros.[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space][vc_column_text]<\/p>\n<h3>Contrato inteligente<\/h3>\n<p>El contrato inteligente para el caso que nos ocupa almacena las solicitudes enviadas al motor con un determinado n\u00famero de revoluciones. El motor puede procesar estas solicitudes y declararlas como canjeadas. Por lo tanto, una solicitud de servicio tiene el siguiente estado:[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBU2VydmljZSUyMCU3QiUwQSUyMCUyMGJ1eWVyJTJDJTBBJTIwJTIwc2VsbGVyJTJDJTBBJTIwJTIwYW1vdW50JTJDJTBBJTIwJTIwc3RhdGUlMjAlM0QlMjAlMjhCT1VHSFQlN0NSRURFRU1FRCUyOSUwQSU3RCUwQSUzQyUyRmRpdiUzRQ==[\/vc_raw_html][vc_column_text]Y se puede cambiar con las dos transacciones de <code>comprar<\/code> (en ingl\u00e9s \u00abbuy\u00bb) y <code>canjear<\/code> (en ingl\u00e9s, \u00abredeem\u00bb).<\/p>\n<p><code>buy(buyer, seller, amount): id<\/code><\/p>\n<ul class=\"chevron\">\n<li>Se crea una nueva instancia de la solicitud en blockchain. El <code>comprador<\/code> (\u00abbuyer\u00bb) pide una <code>cantidad<\/code> (\u00abamount\u00bb) de revoluciones al <code>vendedor<\/code> (\u00abseller\u00bb).La transacci\u00f3n devuelve un ID \u00fanico de la instancia.<\/li>\n<\/ul>\n<p><code>redeem(id, seller)<\/code><\/p>\n<ul class=\"chevron\">\n<li>Esto canjea una solicitud al <code>vendedor<\/code> con una <code>identificaci\u00f3n<\/code> (ID).<\/li>\n<\/ul>\n<p>Los contratos inteligentes en EOSIO se ejecutan en WebAssembly (WASM). Oficialmente, EOSIO solo admite C++. No obstante, como ahora hay muchos compiladores que traducen a WASM, existe una amplia gama de lenguajes de programaci\u00f3n posibles. Por ejemplo, nosotros hemos decidido escribir el contrato inteligente en Rust. Adem\u00e1s, en GitHub tambi\u00e9n se puede encontrar un SDK portado a Rust para desarrollar contratos inteligentes EOSIO. <sup><a id=\"fnref-4\" href=\"#fn-4\">4<\/a><\/sup>[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space][vc_column_text]<\/p>\n<h3>Ejecuci\u00f3n en Rust<\/h3>\n<p>Creamos una nueva biblioteca con <code>cargo<\/code>.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2FyZ28lMjBuZXclMjAtLWxpYiUyMHNtYXJ0Y29udHJhY3QlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]Para compilar posteriormente la biblioteca a WebAssembly, definimos el tipo de la biblioteca en nuestro <code>Cargo.toml<\/code>. Asimismo, especificamos all\u00ed nuestras dependencias respecto al SDK de EOSIO.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTVCbGliJTVEJTBBY3JhdGUtdHlwZSUyMCUzRCUyMCU1QiUyMmNkeWxpYiUyMiU1RCUwQSUwQSU1QmRlcGVuZGVuY2llcyU1RCUwQWVvc2lvJTIwJTNEJTIwJTIyJTVFMC4zLjElMjIlMEFlb3Npb19jZHQlMjAlM0QlMjAlMjIlNUUwLjMuMSUyMiUwQSUwQSU1QnByb2ZpbGUucmVsZWFzZSU1RCUwQWx0byUyMCUzRCUyMHRydWUlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]En nuestro c\u00f3digo de entrada <code>lib.rs<\/code> importamos primero el SDK de EOSIO, lo que proporciona importantes caracter\u00edsticas y macros que reflejan la API de EOSIO.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBdXNlJTIwZW9zaW8lM0ElM0ElMkElM0IlMEF1c2UlMjBlb3Npb19jZHQlM0ElM0ElMkElM0IlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]importamos primero el SDK de EOSIO, lo que proporciona importantes caracter\u00edsticas y macros que reflejan la API de EOSIO.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTIzJTVCZGVyaXZlJTI4TnVtQnl0ZXMlMkMlMjBSZWFkJTJDJTIwV3JpdGUlMjklNUQlMEFzdHJ1Y3QlMjBTZXJ2aWNlJTIwJTdCJTBBJTIwJTIwJTIwJTIwaWQlM0ElMjB1NjQlMkMlMEElMjAlMjAlMjAlMjBidXllciUzQSUyMEFjY291bnROYW1lJTJDJTBBJTIwJTIwJTIwJTIwc2VsbGVyJTNBJTIwQWNjb3VudE5hbWUlMkMlMEElMjAlMjAlMjAlMjBhbW91bnQlM0ElMjB1NjQlMkMlMEElMjAlMjAlMjAlMjByZWRlZW1lZCUzQSUyMGJvb2wlMkMlMEElN0QlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]El struct incorpora las caracter\u00edsticas <code>NumBytes<\/code>, <code>Read<\/code> y <code>Write<\/code> del SDK de EOSIO, para que posteriormente se pueda serializar en blockchain. El tipo <code>AccountName<\/code> procede del SDK de EOSIO y representa una cuenta en la red blockchain.<\/p>\n<p>La incorporaci\u00f3n de la tabla se realiza con la caracter\u00edstica <code>Table<\/code> del SDK, lo que permite serializar el <code>struct Service<\/code> en forma de tabla en blockchain.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBaW1wbCUyMFRhYmxlJTIwZm9yJTIwU2VydmljZSUyMCU3QiUwQSUyMCUyMCUyMCUyMGNvbnN0JTIwTkFNRSUzQSUyMFRhYmxlTmFtZSUyMCUzRCUyMFRhYmxlTmFtZSUzQSUzQW5ldyUyOG4lMjElMjglMjJzZXJ2aWNlJTIyJTI5JTI5JTNCJTBBJTIwJTIwJTIwJTIwdHlwZSUyMFJvdyUyMCUzRCUyMFNlcnZpY2UlM0IlMEElMEElMjAlMjAlMjAlMjBmbiUyMHByaW1hcnlfa2V5JTI4cm93JTNBJTIwJTI2U2VsZiUzQSUzQVJvdyUyOSUyMC0lM0UlMjB1NjQlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByb3cuaWQlMEElMjAlMjAlMjAlMjAlN0QlMEElN0QlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]Con esto, especificamos que las instancias de servicio pueden almacenarse en una tabla en blockchain y la clave primaria se asigna al atributo <code>id<\/code>.<\/p>\n<p>Una acci\u00f3n para el propio contrato inteligente se define como una funci\u00f3n.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTIzJTVCZW9zaW8lM0ElM0FhY3Rpb24lNUQlMEFmbiUyMGJ1eSUyOGJ1eWVyJTNBJTIwQWNjb3VudE5hbWUlMkMlMjBzZWxsZXIlM0ElMjBBY2NvdW50TmFtZSUyQyUyMGFtb3VudCUzQSUyMHU2NCUyOSUyMCU3QiUwQSUyMCUyMCUyMCUyMHJlcXVpcmVfYXV0aCUyOCUyNmJ1eWVyJTI5JTNCJTBBJTIwJTIwJTIwJTIwbGV0JTIwc21hcnRfY29udHJhY3RfYWNjb3VudCUyMCUzRCUyMGN1cnJlbnRfcmVjZWl2ZXIlMjglMjklM0IlMEElMjAlMjAlMjAlMjBsZXQlMjB0YWJsZSUyMCUzRCUyMFJ1bnRpbWUlM0ElM0F0YWJsZSUyOHNtYXJ0X2NvbnRyYWN0X2FjY291bnQlMkMlMjBuJTIxJTI4JTIyZ2xvYmFsJTIyJTI5JTI5JTNCJTBBJTIwJTIwJTIwJTIwbGV0JTIwaWQlMjAlM0QlMjB0YWJsZS5hdmFpbGFibGVfcHJpbWFyeV9rZXklMjglMjkuZXhwZWN0JTI4JTIyVGhlcmUlMjBtdXN0JTIwYmUlMjBhbiUyMGF2YWlsYWJsZSUyMHByaW1hcnklMjBrZXklMjElMjIlMjklM0IlMEElMjAlMjAlMjAlMjBsZXQlMjBydW50aW1lJTIwJTNEJTIwUnVudGltZSUyMCU3QiUyMGlkJTJDJTIwYnV5ZXIlMkMlMjBzZWxsZXIlMkMlMjBhbW91bnQlMkMlMjByZWRlZW1lZCUzQSUyMGZhbHNlJTIwJTdEJTNCJTBBJTIwJTIwJTIwJTIwdGFibGUuZW1wbGFjZSUyOHNtYXJ0X2NvbnRyYWN0X2FjY291bnQlMkMlMjBydW50aW1lJTI5LmV4cGVjdCUyOCUyMkNvdWxkJTIwbm90JTIwZW1wbGFjZSUyMG5ldyUyMGJvdWdodCUyMHNlcnZpY2UuJTIyJTI5JTNCJTBBJTdEJTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][vc_column_text]En primer lugar, comprobamos si la cuenta del <code>buyer<\/code> tambi\u00e9n corresponde a la cuenta con la que se realiz\u00f3 la transacci\u00f3n, un paso importante que evita adem\u00e1s que una m\u00e1quina ajena cree una solicitud en nombre de otra m\u00e1quina. A continuaci\u00f3n, obtenemos la tabla ya guardada, calculamos el siguiente ID disponible y, una vez m\u00e1s, guardamos en la tabla una nueva instancia de la consulta con los datos transmitidos. La ejecuci\u00f3n para la acci\u00f3n de <code>redeem<\/code> funciona de forma similar.[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space][vc_column_text]<\/p>\n<h3>Definici\u00f3n de la interfaz. ABI<\/h3>\n<p>Adem\u00e1s del c\u00f3digo WebAssembly, el contrato inteligente consta tambi\u00e9n de una definici\u00f3n que describe la estructura y la interacci\u00f3n con este. Esta se describe en forma de un archivo ABI, como es habitual en el entorno de WebAssembly. Cuando el desarrollo se realiza en C++, este archivo se genera autom\u00e1ticamente. En cambio, en el SDK de Rust, esta funci\u00f3n a\u00fan no est\u00e1 disponible en la actualidad.<\/p>\n<p>La ABI describe los diferentes tipos y las diferentes acciones del contrato inteligente. Tambi\u00e9n puede escribirse manualmente. Para obtener m\u00e1s informaci\u00f3n, consulte la documentaci\u00f3n para desarrolladores de EOSIO. <sup><a id=\"fnref-5\" href=\"#fn-5\">5<\/a><\/sup>[\/vc_column_text][vc_column_text]La interfaz binaria de aplicaciones (ABI) de nuestro contrato inteligente tiene el siguiente aspecto:[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTdCJTBBJTIwJTIwJTIydmVyc2lvbiUyMiUzQSUyMCUyMmVvc2lvJTNBJTNBYWJpJTJGMS4wJTIyJTJDJTBBJTIwJTIwJTIydHlwZXMlMjIlM0ElMjAlNUIlNUQlMkMlMEElMjAlMjAlMjJzdHJ1Y3RzJTIyJTNBJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIybmFtZSUyMiUzQSUyMCUyMmJ1eSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMmJhc2UlMjIlM0ElMjAlMjIlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJmaWVsZHMlMjIlM0ElMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJuYW1lJTIyJTNBJTIwJTIyYnV5ZXIlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJ0eXBlJTIyJTNBJTIwJTIybmFtZSUyMiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMm5hbWUlMjIlM0ElMjAlMjJzZWxsZXIlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJ0eXBlJTIyJTNBJTIwJTIybmFtZSUyMiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMm5hbWUlMjIlM0ElMjAlMjJkdXJhdGlvbiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnR5cGUlMjIlM0ElMjAlMjJ1aW50NjQlMjIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlNUQlMEElMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJuYW1lJTIyJTNBJTIwJTIycmVkZWVtJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIyYmFzZSUyMiUzQSUyMCUyMiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMmZpZWxkcyUyMiUzQSUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMm5hbWUlMjIlM0ElMjAlMjJpZCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnR5cGUlMjIlM0ElMjAlMjJ1aW50NjQlMjIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlNUQlMEElMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJuYW1lJTIyJTNBJTIwJTIycnVudGltZSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMmJhc2UlMjIlM0ElMjAlMjIlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJmaWVsZHMlMjIlM0ElMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJuYW1lJTIyJTNBJTIwJTIyaWQlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJ0eXBlJTIyJTNBJTIwJTIydWludDY0JTIyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIybmFtZSUyMiUzQSUyMCUyMmJ1eWVyJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydHlwZSUyMiUzQSUyMCUyMm5hbWUlMjIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJuYW1lJTIyJTNBJTIwJTIyc2VsbGVyJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydHlwZSUyMiUzQSUyMCUyMm5hbWUlMjIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJuYW1lJTIyJTNBJTIwJTIyZHVyYXRpb24lMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJ0eXBlJTIyJTNBJTIwJTIydWludDY0JTIyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIybmFtZSUyMiUzQSUyMCUyMnJlZGVlbWVkJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydHlwZSUyMiUzQSUyMCUyMmJvb2wlMjIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlNUQlMEElMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlNUQlMkMlMEElMjAlMjAlMjJhY3Rpb25zJTIyJTNBJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIybmFtZSUyMiUzQSUyMCUyMmJ1eSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMnR5cGUlMjIlM0ElMjAlMjJidXklMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJyaWNhcmRpYW5fY29udHJhY3QlMjIlM0ElMjAlMjIlMjIlMEElMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJuYW1lJTIyJTNBJTIwJTIycmVkZWVtJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIydHlwZSUyMiUzQSUyMCUyMnJlZGVlbSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMnJpY2FyZGlhbl9jb250cmFjdCUyMiUzQSUyMCUyMiUyMiUwQSUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCU1RCUyQyUwQSUyMCUyMCUyMnRhYmxlcyUyMiUzQSUyMCU1QiUwQSUyMCUyMCUyMCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMm5hbWUlMjIlM0ElMjAlMjJydW50aW1lJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIydHlwZSUyMiUzQSUyMCUyMnJ1bnRpbWUlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJpbmRleF90eXBlJTIyJTNBJTIwJTIyaTY0JTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIya2V5X25hbWVzJTIyJTNBJTIwJTVCJTIyaWQlMjIlMkMlMjAlMjJidXllciUyMiUyQyUyMCUyMnNlbGxlciUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMmtleV90eXBlcyUyMiUzQSUyMCU1QiUyMnVpbnQ2NCUyMiUyQyUyMCUyMm5hbWUlMjIlMkMlMjAlMjJuYW1lJTIyJTVEJTBBJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTVEJTJDJTBBJTIwJTIwJTIycmljYXJkaWFuX2NsYXVzZXMlMjIlM0ElMjAlNUIlNUQlMkMlMEElMjAlMjAlMjJhYmlfZXh0ZW5zaW9ucyUyMiUzQSUyMCU1QiU1RCUwQSU3RCUwQSUzQyUyRmRpdiUzRQ==[\/vc_raw_html][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_column_text]Para obtener m\u00e1s informaci\u00f3n sobre la ABI, la generaci\u00f3n de contratos inteligentes y la compilaci\u00f3n relacionada, visite los siguientes enlaces:<\/p>\n<ul class=\"chevron\">\n<li><a class=\"extern\" href=\"https:\/\/sagan-software.github.io\/eosio-rust\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/sagan-software.github.io\/eosio-rust\/<\/a><\/li>\n<li><a class=\"extern\" href=\"https:\/\/developers.eos.io\/manuals\/eosio.cdt\/latest\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/developers.eos.io\/manuals\/eosio.cdt\/latest\/<\/a><\/li>\n<\/ul>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space][vc_column_text]<\/p>\n<h3>Creaci\u00f3n de una red de blockchain EOSIO<\/h3>\n<p>El protocolo EOSIO no solo se utiliza en la red EOS. Es posible utilizar una segunda red de prueba oficial para comprobar los contratos inteligentes, o ben crear una red privada propia. La red EOS es de acceso p\u00fablico y, por lo tanto, todos los datos almacenados pueden verse libremente. Sin embargo, en el caso pr\u00e1ctico que nos ocupa, no queremos divulgar p\u00fablicamente los datos confidenciales de facturaci\u00f3n y, por lo tanto, establecemos una red aislada de la manera que se indica a continuaci\u00f3n.<\/p>\n<p>En EOSIO, b\u00e1sicamente es posible clasificar los nodos en diferentes clases.<\/p>\n<ul class=\"chevron\">\n<li>Existen <em>Light-Nodes<\/em>, es decir, nodos que solo se conectan a otros nodos, pero que no almacenan ning\u00fan dato por s\u00ed mismos.<\/li>\n<li>Los <em>Full-Nodes<\/em> almacenan la blockchain en s\u00ed, pero no producen ning\u00fan bloque por s\u00ed mismos.<\/li>\n<li>Y luego est\u00e1n <em>Block-Producer<\/em>, que son los nodos de la red que se han seleccionado para producir los bloques.<\/li>\n<\/ul>\n<p>Como ejemplo, crearemos dos nodos y configuraremos los dos como productores de bloques. El primer nodo es operado por el fabricante <em>XITASO1<\/em> y el segundo, por el fabricante <em>XITASO2<\/em>. Para simplificar, los dos nodos se ejecutar\u00e1n en una m\u00e1quina virtual con <em>Ubuntu<\/em> 18.04.<\/p>\n<p>En primer lugar, instalamos los archivos binarios necesarios de EOSIO, que est\u00e1n disponibles para los sistemas operativos m\u00e1s habituales. <sup><a id=\"fnref-6\" href=\"#fn-6\">6<\/a><\/sup>[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space height=\u00bb50px\u00bb][vc_column_text]<strong>EOSIO Development Lifecycle<\/strong><br \/>\n<em>Fuente: <a class=\"extern\" href=\"https:\/\/developers.eos.io\/welcome\/v2.0\/overview\/platform_and_toolchain\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/developers.eos.io\/welcome\/v2.0\/overview\/platform_and_toolchain<\/a><\/em>[\/vc_column_text][vc_single_image image=\u00bb14676&#8243; img_size=\u00bbfull\u00bb onclick=\u00bbimg_link_large\u00bb qode_css_animation=\u00bb\u00bb][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space][vc_column_text]Se instalan tres programas diferentes.<\/p>\n<ul class=\"chevron\">\n<li><code>keosd<\/code> &#8211; Un demonio que controla una cartera, es decir, el almac\u00e9n de claves.<\/li>\n<li><code>nodeos<\/code> &#8211; El software real para los nodos de la red blockchain.<\/li>\n<li><code>cleos<\/code> &#8211; La CLI con la que es posible dirigirse a los nodos y acceder a la cartera.<\/li>\n<\/ul>\n<p>Para empezar, iniciamos nuestro demonio con <code>keosd &amp;<\/code>y, como tanto los nodos como <code>cleos<\/code> necesitan acceso a la cartera, creamos una cartera con <code>cleos wallet create --to-console<\/code>. La cartera debe abrirse primero con <code>cleos wallet open<\/code> y, luego, desbloquearse con <code>cleos wallet unlock<\/code>.<\/p>\n<p>Nuestro primer productor de bloques pertenece a la cuenta <code>eosio<\/code>. Esta es la cuenta predeterminada que existe siempre. <code>eosio<\/code> firma los bloques con una clave predeterminada. Adem\u00e1s, dicha clave tambi\u00e9n es necesaria para autorizar acciones con la cuenta. La cuenta es siempre igual al principio, solo se utiliza para fines de desarrollo y tiene que sustituirse lo antes posible. Pero primero tenemos que importarla:[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjB3YWxsZXQlMjBpbXBvcnQlMEE1S1F3clBid2RMNlBoWHVqeFczN0ZTU1FaMUppd3NTVDRjcVF6RGV5WHRQNzl6a3ZGRDMlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]Acto seguido, podemos iniciar el nodo con el siguiente comando.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwbm9kZW9zJTIwLWUlMjAtcCUyMGVvc2lvJTIwJTVDJTBBLS1kYXRhLWRpciUyMH4lMkYubG9jYWwlMkZzaGFyZSUyRmVvc2lvJTJGZW9zaW8lMjAlNUMlMEEtLWNvbmZpZy1kaXIlMjB+JTJGLmxvY2FsJTJGc2hhcmUlMkZlb3NpbyUyRmVvc2lvJTIwJTVDJTBBLS1wbHVnaW4lMjBlb3NpbyUzQSUzQXByb2R1Y2VyX3BsdWdpbiUyMCU1QyUwQS0tcGx1Z2luJTIwZW9zaW8lM0ElM0Fwcm9kdWNlcl9hcGlfcGx1Z2luJTIwJTVDJTBBLS1wbHVnaW4lMjBlb3NpbyUzQSUzQWNoYWluX2FwaV9wbHVnaW4lMjAlNUMlMEEtLXBsdWdpbiUyMGVvc2lvJTNBJTNBaHR0cF9wbHVnaW4lMjAlNUMlMEEtLXBsdWdpbiUyMGVvc2lvJTNBJTNBaGlzdG9yeV9wbHVnaW4lMjAlNUMlMEEtLXBsdWdpbiUyMGVvc2lvJTNBJTNBaGlzdG9yeV9hcGlfcGx1Z2luJTIwJTVDJTBBLS1maWx0ZXItb24lM0QlMjIlMkElMjIlMjAlNUMlMEEtLWFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbiUzRCUyNyUyQSUyNyUyMCU1QyUwQS0tY29udHJhY3RzLWNvbnNvbGUlMjAlNUMlMEEtLWh0dHAtdmFsaWRhdGUtaG9zdCUzRGZhbHNlJTIwJTVDJTBBLS12ZXJib3NlLWh0dHAtZXJyb3JzJTIwJTVDJTBBLS1kaXNhYmxlLXJlcGxheS1vcHRzJTIwJTNFJTNFJTIwZW9zaW8ubG9nJTIwMiUzRSUyNjElMjAlMjYlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]Adem\u00e1s, especificamos que todos los datos se almacenen en la carpeta <code>.local\/share\/eosio\/eosio<\/code>. Los par\u00e1metros <code>--data-dir<\/code> y <code>--config-dir<\/code> son opcionales, pero deben especificarse para una red de m\u00faltiples nodos, puesto que, de lo contrario, todos los nodos utilizar\u00e1n la misma ubicaci\u00f3n. Adem\u00e1s, iniciamos el nodo con unos cuantos plugins que son necesarios para la producci\u00f3n de bloques o para la comunicaci\u00f3n entre <code>cleos<\/code> y <code>nodeos<\/code>. Para obtener m\u00e1s informaci\u00f3n sobre el manejo <code>nodeos<\/code> visite el siguiente enlace:<\/p>\n<ul class=\"chevron\">\n<li><a class=\"extern\" href=\"https:\/\/developers.eos.io\/manuals\/eos\/latest\/nodeos\/index\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/developers.eos.io\/manuals\/eos\/latest\/nodeos\/index<\/a><\/li>\n<\/ul>\n<p>[\/vc_column_text][vc_column_text]El sistema de cuentas en EOSIO tiene una estructura de \u00e1rbol. Cada cuenta solo puede crearse a partir de otra cuenta y queda subordinada a esta. De este modo, para nuestro segundo bloque de productores, necesitamos una segunda cuenta. Para ello, primero creamos una nueva pareja de claves compuesta por una clave p\u00fablica y otra privada.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjB3YWxsZXQlMjBjcmVhdGVfa2V5JTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][vc_column_text]Este comando devuelve la parte p\u00fablica de la clave en la consola. Lo asignaremos a nuestra segunda cuenta <code>inita<\/code>.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjBjcmVhdGUlMjBhY2NvdW50JTIwZW9zaW8lMjBpbml0YSUyMCUyNmx0JTNCUHVibGljS2V5JTI2Z3QlM0IlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]Como ya hemos mencionado, el sistema de contratos inteligentes tiene una estructura muy modular. As\u00ed, la funci\u00f3n para establecer los productores de bloques activos se incorpora en un contrato inteligente de sistema bajo. Para instalarlo, necesitamos descargarlo y compilarlo.[\/vc_column_text][vc_raw_html css=\u00bb.vc_custom_1591185433591{margin-right: -30px !important;}\u00bb]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwZ2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZFT1NJTyUyRmVvc2lvLmNvbnRyYWN0cyUyMC0tYnJhbmNoJTIwdjEuNy4wJTIwLS1zaW5nbGUtYnJhbmNoJTBBJTI0JTIwd2dldCUyMGh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRkVPU0lPJTJGZW9zaW8uY2R0JTJGcmVsZWFzZXMlMkZkb3dubG9hZCUyRnYxLjYuMyUyRmVvc2lvLmNkdF8xLjYuMy0xLXVidW50dS0xOC4wNF9hbWQ2NC5kZWIlMEElMjQlMjBzdWRvJTIwYXB0JTIwaW5zdGFsbCUyMC4lMkZlb3Npby5jZHRfMS42LjMtMV9hbWQ2NC5kZWIlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]Estos comandos clonan el proyecto de c\u00f3digo abierto de los contratos inteligentes del sistema de EOSIO e instalan el SDK de desarrollo de contratos inteligentes en C++.<\/p>\n<p>Para la compilaci\u00f3n, adem\u00e1s del <code>build-essential<\/code>, tambi\u00e9n se necesita <code>cmake<\/code>.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwc3VkbyUyMGFwdCUyMGluc3RhbGwlMjBidWlsZC1lc3NlbnRpYWwlMjBjbWFrZSUyMC15JTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][vc_column_text]Una vez que la instalaci\u00f3n ha finalizado correctamente, compilamos los proyectos para contratos inteligentes.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2QlMjAlM0N5b3VyX2xvY2FsX3BhdGhfdG8lM0UlMkZlb3Npby5jb250cmFjdHMlMkYlMEElMjQlMjBybSUyMC1mciUyMGJ1aWxkJTBBJTI0JTIwbWtkaXIlMjBidWlsZCUwQSUyNCUyMGNkJTIwYnVpbGQlMEElMjQlMjBjbWFrZSUyMC4uJTBBJTI0JTIwbWFrZSUyMC1qJTI0JTI4JTIwbnByb2MlMjAlMjklMEElMjQlMjBjZCUyMC4uJTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][vc_column_text]La instalaci\u00f3n de contratos inteligentes del sistema debe habilitarse con el siguiente comando. En la versi\u00f3n 2.0, esto se hace con la siguiente llamada a la API.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBY3VybCUyMC1YJTIwUE9TVCUyMGh0dHAlM0ElMkYlMkYxMjcuMC4wLjElM0E4ODg4JTJGdjElMkZwcm9kdWNlciUyRnNjaGVkdWxlX3Byb3RvY29sX2ZlYXR1cmVfYWN0aXZhdGlvbnMlMjAlMEEtZCUyMCUyNyU3QiUyMnByb3RvY29sX2ZlYXR1cmVzX3RvX2FjdGl2YXRlJTIyJTNBJTIwJTVCJTIyJTNDJTJGZGl2JTNF[\/vc_raw_html][vc_column_text]A continuaci\u00f3n, podemos instalar el contrato inteligente responsable <code>eosio.bios<\/code>.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjBzZXQlMjBjb250cmFjdCUyMGVvc2lvJTIwJTNDeW91cl9sb2NhbF9wYXRoX3RwJTNFJTJGYnVpbGQlMkZjb250cmFjdHMlMkZlb3Npby5iaW9zJTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][vc_column_text]Ahora especificamos nuestros productores de bloques en un archivo <code>schedule.json<\/code>. No obstante, para, ello seguimos necesitando dos nuevas parejas de claves que servir\u00e1n como claves de firma para los bloques.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjB3YWxsZXQlMjBjcmVhdGVfa2V5JTIwJTIzJTIwb3V0cHV0JTIwJTNEJTIwJTI2bHQlM0JQdWJsaWNLZXlFT1NJTyUyNmd0JTNCJTBBJTI0JTIwY2xlb3MlMjB3YWxsZXQlMjBjcmVhdGVfa2V5JTIwJTIzJTIwb3V0cHV0JTIwJTNEJTIwJTI2bHQlM0JQdWJsaWNLZXlJTklUQSUyNmd0JTNCJTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][vc_column_text]Despu\u00e9s, describimos nuestro productor de bloques activo.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTdCJTBBJTIwJTIwJTIwJTIwJTIyc2NoZWR1bGUlMjIlM0ElMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJwcm9kdWNlcl9uYW1lJTIyJTNBJTIwJTIyZW9zaW8lMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJibG9ja19zaWduaW5nX2tleSUyMiUzQSUyMCUyMiUyNmx0JTNCUHVibGljS2V5RU9TSU8lMjZndCUzQiUyMiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyQyU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnByb2R1Y2VyX25hbWUlMjIlM0ElMjAlMjJpbml0YSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmJsb2NrX3NpZ25pbmdfa2V5JTIyJTNBJTIwJTIyJTI2bHQlM0JQdWJsaWNLZXlJTklUQSUyNmd0JTNCJTIyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTVEJTBBJTdEJTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][vc_column_text]A continuaci\u00f3n, enviamos esta programaci\u00f3n a blockchain utilizando el contrato inteligente instalado.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjBwdXNoJTIwYWN0aW9uJTIwZW9zaW8lMjBzZXRwcm9kcyUyMCUyMiUyNmx0JTNCcGF0aC10by1qc29uJTI2Z3QlM0IlMkZzY2hlZHVsZS5qc29uJTIyJTIwLXAlMjBlb3NpbyU0MGFjdGl2ZSUwQSUzQyUyRmRpdiUzRQ==[\/vc_raw_html][vc_column_text]Con ello, hemos determinado dos productores de bloques activos, cada uno de los cuales firma los bloques con claves diferentes. A continuaci\u00f3n, iniciamos nuestro segundo nodo <code>inita<\/code> para que este pueda copiar el historial de blockchain anterior de<br \/>\n<code>eosio<\/code>. Para ello, tambi\u00e9n necesitamos la parte privada de la pareja de claves que acabamos de crear. A tal fin, mostramos las claves almacenadas en la cartera.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjB3YWxsZXQlMjBwcml2YXRlX2tleXMlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwbm9kZW9zJTIwLWUlMjAtcCUyMGluaXRhJTIwJTVDJTBBLS1kYXRhLWRpciUyMH4lMkYubG9jYWwlMkZzaGFyZSUyRmVvc2lvJTJGaW5pdGElMjAlNUMlMEEtLWNvbmZpZy1kaXIlMjB+JTJGLmxvY2FsJTJGc2hhcmUlMkZlb3NpbyUyRmluaXRhJTIwJTVDJTBBLS1odHRwLXNlcnZlci1hZGRyZXNzJTIwMC4wLjAuMCUzQTg4ODklMjAlNUMlMEEtLXAycC1saXN0ZW4tZW5kcG9pbnQlMjAwLjAuMC4wJTNBOTg3NyUyMCU1QyUwQS0tcDJwLXBlZXItYWRkcmVzcyUyMDEyNy4wLjAuMSUzQTk4NzYlMjAlNUMlMEEtLXBsdWdpbiUyMGVvc2lvJTNBJTNBcHJvZHVjZXJfcGx1Z2luJTIwJTVDJTBBLS1wbHVnaW4lMjBlb3NpbyUzQSUzQW5ldF9hcGlfcGx1Z2luJTIwJTVDJTBBLS1wbHVnaW4lMjBlb3NpbyUzQSUzQWNoYWluX2FwaV9wbHVnaW4lMjAlNUMlMEEtLXNpZ25hdHVyZS1wcm92aWRlciUyMCUyNmx0JTNCUHVibGljS2V5SU5JVEElMjZndCUzQiUzREtFWSUzQSUyNmx0JTNCUHJpdmF0ZUtleUlOSVRBJTI2Z3QlM0IlMjAlNUMlMEElM0UlM0UlMjBpbml0YS5sb2clMjAyJTNFJTI2MSUyMCUyNiUwQSUzQyUyRmRpdiUzRQ==[\/vc_raw_html][vc_column_text]Al hacerlo, iniciamos este segundo nodo solo con los plugins que necesitamos y definimos otros puertos para nuestros propios puntos finales, pues los predeterminados ya est\u00e1n ocupados por el primer nodo.<\/p>\n<p>Sin embargo, el nodo <code>eosio<\/code> a\u00fan no tiene su clave asignada, por lo que debemos reiniciarlo.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwcHMlMEElMjQlMjBraWxsJTIwJTNDcGlkJTIwb2YlMjBmaXJzdCUyMG5vZGVvcyUzRSUwQSUyNCUyMG5vZGVvcyUyMC1lJTIwLXAlMjBlb3NpbyUyMCU1QyUwQS0tZGF0YS1kaXIlMjB+JTJGLmxvY2FsJTJGc2hhcmUlMkZlb3NpbyUyRmVvc2lvJTIwJTVDJTBBLS1jb25maWctZGlyJTIwfiUyRi5sb2NhbCUyRnNoYXJlJTJGZW9zaW8lMkZlb3NpbyUyMCU1QyUwQS0tcGx1Z2luJTIwZW9zaW8lM0ElM0Fwcm9kdWNlcl9wbHVnaW4lMjAlNUMlMEEtLXBsdWdpbiUyMGVvc2lvJTNBJTNBcHJvZHVjZXJfYXBpX3BsdWdpbiUyMCU1QyUwQS0tcGx1Z2luJTIwZW9zaW8lM0ElM0FjaGFpbl9hcGlfcGx1Z2luJTIwJTVDJTBBLS1wbHVnaW4lMjBlb3NpbyUzQSUzQWh0dHBfcGx1Z2luJTIwJTVDJTBBLS1wbHVnaW4lMjBlb3NpbyUzQSUzQWhpc3RvcnlfcGx1Z2luJTIwJTVDJTBBLS1wbHVnaW4lMjBlb3NpbyUzQSUzQWhpc3RvcnlfYXBpX3BsdWdpbiUyMCU1QyUwQS0tZmlsdGVyLW9uJTNEJTIyJTJBJTIyJTIwJTVDJTBBLS1hY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4lM0QlMjclMkElMjclMjAlNUMlMEEtLWNvbnRyYWN0cy1jb25zb2xlJTIwJTVDJTBBLS1odHRwLXZhbGlkYXRlLWhvc3QlM0RmYWxzZSUyMCU1QyUwQS0tdmVyYm9zZS1odHRwLWVycm9ycyUyMCU1QyUwQS0tZGlzYWJsZS1yZXBsYXktb3B0cyUyMCU1QyUwQS0tc2lnbmF0dXJlLXByb3ZpZGVyJTIwJTI2bHQlM0JQdWJsaWNLZXlFT1NJTyUyNmd0JTNCJTNES0VZJTNBJTI2bHQlM0JQcml2YXRlS2V5RU9TSU8lMjZndCUzQiUyMCU1QyUwQSUzRSUzRSUyMGVvc2lvLmxvZyUyMDIlM0UlMjYxJTIwJTI2JTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][vc_column_text]Ahora tenemos una red de m\u00faltiples nodos en funcionamiento en la que podemos instalar nuestro contrato inteligente construido por nosotros mismos. Tambi\u00e9n queremos asignarlo a una cuenta separada. Adem\u00e1s, necesitamos al menos dos cuentas de prueba para probar nuestro caso pr\u00e1ctico.<\/p>\n<p>Para ello, volvemos a crear tres nuevas parejas de claves. Una para cada cuenta.<br \/>\n[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjB3YWxsZXQlMjBjcmVhdGVfa2V5JTIwJTIzJTIwM3glMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]A continuaci\u00f3n, crearemos las nuevas cuentas e instalaremos el contrato inteligente en la cuenta <code>iot<\/code>.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjBjcmVhdGUlMjBhY2NvdW50JTIwZW9zaW8lMjBpb3QlMjAlMjZsdCUzQlB1YmxpY0tleUlPVCUyNmd0JTNCJTBBJTI0JTIwY2xlb3MlMjBjcmVhdGUlMjBhY2NvdW50JTIwaW90JTIwdGVzdGJ1eWVyJTIwJTI2bHQlM0JQdWJsaWNLZXlCdXllciUyNmd0JTNCJTBBJTI0JTIwY2xlb3MlMjBjcmVhdGUlMjBhY2NvdW50JTIwaW90JTIwdGVzdHNlbGxlciUyMCUyNmx0JTNCUHVibGljS2V5U2VsbGVyJTI2Z3QlM0IlMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]Despu\u00e9s, instalamos nuestro contrato inteligente. Por supuesto, este ya debe haberse compilado en WebAssembly.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjBzZXQlMjBhYmklMjBpb3QlMjAlMjZsdCUzQnBhdGgtdG8tc21hcnQtY29udHJhY3QlMjZndCUzQiUyRnNtYXJ0Y29udHJhY3QuYWJpJTBBJTI0JTIwY2xlb3MlMjBzZXQlMjBjb2RlJTIwaW90JTIwJTI2bHQlM0JwYXRoLXRvLXNtYXJ0LWNvbnRyYWN0cy13YXNtJTI2Z3QlM0IlMkZzbWFydGNvbnRyYWN0Lndhc20lMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]Con esto, hemos enviado una transacci\u00f3n con el contrato sem\u00e1ntico y el c\u00f3digo asociado a la red blockchain y la hemos almacenado en esa ubicaci\u00f3n.[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space][vc_column_text]<\/p>\n<h3>Sobre las claves de las cuentas<\/h3>\n<p>EOSIO subdivide las parejas de claves de las cuentas. Hemos asignado una clave de propietario a todas las cuentas. Sin embargo, para ello, se puede y se debe seguir subdividiendo una clave Active. Todas las interacciones y transacciones deben realizarse con esta clave, puesto que, si la roban o se pierde, puede sustituirse por medio de la clave del propietario. La clave del propietario no se puede cambiar sin m\u00e1s.[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space][vc_column_text]<\/p>\n<h3>La conexi\u00f3n con la red<\/h3>\n<p>Para probar nuestra aplicaci\u00f3n (DApp), necesitamos un cliente que interact\u00fae con el sistema creado. Para ello, EOSIO proporciona un cliente nodo oficial <code>eos.js<\/code>, que puede instalarse con <code>npm<\/code>.<\/p>\n<p>Antes de poder enviar una transacci\u00f3n a la red con este cliente, necesitamos la clave privada de una cuenta, que luego firmar\u00e1 dicha clave. Para reclamar un servicio, utilizamos la cuenta <code>testbuyer<\/code>. Para encontrar las claves de la cuenta, podemos utilizar <code>cleos<\/code> para consultar la red y, luego, nuestra cartera.[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBJTI0JTIwY2xlb3MlMjBnZXQlMjBhY2NvdW50JTIwdGVzdGJ1eWVyJTIwJTIzJTIwLSUzRSUyME93bmVyJTIwUHVsaWMlMjBLZXklMEElMjQlMjBjbGVvcyUyMHdhbGxldCUyMHByaXZhdGVfa2V5cyUyMCUyMyUyMEVpbnRyYWclMjBtaXQlMjBQdWJsaWMlMjBLZXklMjBmaW5kZW4lMEElM0MlMkZkaXYlM0U=[\/vc_raw_html][vc_column_text]Para conectarse a la red a trav\u00e9s de <code>eos.js<\/code> , el cliente proporciona dos clases. <code>JsonRpc<\/code> establece la conexi\u00f3n <code>rpc<\/code> con el nodo y la <code>Api<\/code>, a su vez, utiliza <code>JsonRPC<\/code> y se encarga de la codificaci\u00f3n y del resto de la l\u00f3gica. Adem\u00e1s, tenemos que transmitir la clave privada en una instancia <code>SignatureProvider<\/code> de la <code>Api<\/code> . Para el prototipo, utilizamos el <code>JsSignatureProvider<\/code> que, sin embargo, solo est\u00e1 pensado para fines de desarrollo.[\/vc_column_text][vc_raw_html css=\u00bb.vc_custom_1591186082753{margin-right: -40px !important;}\u00bb]JTNDZGl2JTIwY2xhc3MlM0QlMjJjb2RlYm94JTIyJTNFJTBBaW1wb3J0JTIwJTdCJTIwSnNTaWduYXR1cmVQcm92aWRlciUyMCU3RCUyMGZyb20lMjAlMjdlb3NqcyUyRmRpc3QlMkZlb3Nqcy1qc3NpZyUyNyUzQiUwQWltcG9ydCUyMCU3QiUyMEpzb25ScGMlMkMlMjBBcGklMkMlMjBScGNFcnJvciUyMCU3RCUyMGZyb20lMjAlMjdlb3NqcyUyNyUzQiUwQWltcG9ydCUyMGZldGNoJTIwJTNEJTIwcmVxdWlyZSUyOCUyN25vZGUtZmV0Y2glMjclMjklM0IlMEFpbXBvcnQlMjAlN0IlMjBUZXh0RW5jb2RlciUyQyUyMFRleHREZWNvZGVyJTIwJTdEJTIwZnJvbSUyMCUyN3V0aWwlMjclM0IlMEElMEFjb25zdCUyMGhvc3RVcmwlMjAlM0QlMjAlMjdodHRwJTNBJTJGJTJGMTI3LjAuMC4xJTNBODg4OCUyNyUzQiUwQWNvbnN0JTIwcHJpdmF0ZUtleSUyMCUzRCUyMCUyNyUyNyUzQiUwQSUwQWNvbnN0JTIwc2lnbmF0dXJlUHJvdmlkZXIlMjAlM0QlMjBuZXclMjBKc1NpZ25hdHVyZVByb3ZpZGVyJTI4JTVCcHJpdmF0ZUtleSU1RCUyOSUzQiUwQWNvbnN0JTIwcnBjJTIwJTNEJTIwbmV3JTIwSnNvblJwYyUyOGhvc3RVcmwlMkMlMjAlN0IlMjBmZXRjaCUyMCU3RCUyMCUyOSUzQiUwQWNvbnN0JTIwYXBpJTIwJTNEJTIwbmV3JTIwQXBpJTI4JTdCcnBjJTJDJTIwc2lnbmF0dXJlUHJvdmlkZXIlMkMlMjB0ZXh0RGVjb2RlciUzQSUyMG5ldyUyMFRleHREZWNvZGVyJTI4JTI5JTJDJTIwdGV4dEVuY29kZXIlM0ElMjBuZXclMjBUZXh0RW5jb2RlciUyOCUyOSU3RCUyOSUzQiUwQSUwQWZ1bmN0aW9uJTIwYnV5U2VydmljZSUyOGFtb3VudCUyOSUyMCU3QiUwQSUyMCUyMCUyMCUyMGNvbnN0JTIwcGF5bG9hZCUyMCUzRCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFjY291bnQlM0ElMjAlMjdpb3QlMjclMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBuYW1lJTNBJTIwJTI3YnV5JTI3JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXV0aG9yaXphdGlvbiUzQSUyMCU1QiU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFjdG9yJTNBJTIwJTI3dGVzdGJ1eWVyJTI3JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcGVybWlzc2lvbiUzQSUyMCUyN2FjdGl2ZSUyNyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRhdGElM0ElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBidXllciUzQSUyMCUyN3Rlc3RidXllciUyNyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHNlbGxlciUzQSUyMCUyN3Rlc3RzZWxsZXIlMjclMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkdXJhdGlvbiUzQSUyMGFtb3VudCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCU3RCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMGNvbnN0JTIwb3B0aW9ucyUyMCUzRCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJsb2Nrc0JlaGluZCUzQSUyMDMlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBleHBpcmVTZWNvbmRzJTNBJTIwMzAlMEElMjAlMjAlMjAlMjAlMjAlMjAlN0QlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjB0cnklMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBhd2FpdCUyMGFwaS50cmFuc2FjdCUyOCU3QmFjdGlvbnMlM0ElMjAlNUJwYXlsb2FkJTVEJTdEJTJDJTIwb3B0aW9ucyUyOSUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyMGNhdGNoJTI4ZXJyJTI5JTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY29uc29sZS5sb2clMjglMjJDb3VsZCUyMG5vdCUyMHRyYW5zYWN0JTNBJTIwJTIyJTIwJTJCJTIwZXJyJTI5JTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAlMjhlcnIlMjBpbnN0YW5jZW9mJTIwUnBjRXJyb3IlMjklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjb25zb2xlLmxvZyUyOEpTT04uc3RyaW5naWZ5JTI4ZXJyLmpzb24lMkMlMjBudWxsJTJDJTIwMiUyOSUyOSUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSU3RCUwQSUzQyUyRmRpdiUzRQ==[\/vc_raw_html][vc_column_text]As\u00ed es como podr\u00eda ser la funci\u00f3n para una solicitud de compra de un servicio en el lado del cliente. <code>eos.js<\/code> ofrece adem\u00e1s la posibilidad de consultar los datos y la informaci\u00f3n almacenados mediante bloques. Estas funciones se incorporan en los <code>nodeos<\/code>con la ayuda de los plugins de nodeos.[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space][vc_column_text]<\/p>\n<h2>Resumen<\/h2>\n<p>Por un lado, hemos visto la forma en la que se configura una red de m\u00faltiples nodos con EOSIO, as\u00ed como el modo en el que se instalan varios contratos inteligentes en ella y la manera en la que las cuentas necesarias se configuran con permisos. Tambi\u00e9n hemos analizado brevemente la integraci\u00f3n del cliente con <code>eos.js<\/code>. Con el prototipo que hemos desarrollado, hemos esbozado las posibilidades que presenta EOSIO. Gracias a sus excelentes funciones de documentaci\u00f3n, EOSIO ofrece un acceso fluido al desarrollo con la tecnolog\u00eda blockchain.<\/p>\n<p>En nuestro caso pr\u00e1ctico, hemos demostrado c\u00f3mo podr\u00eda ser una plataforma digital interoperable en un entorno industrial para incorporar nuevos modelos de negocio, como el pago por uso. Las nuevas tecnolog\u00edas blockchain, como EOSIO, permiten aplicar de forma r\u00e1pida y sencilla una gesti\u00f3n segura de los procesos y, por lo tanto, ofrecen un enorme potencial para la industria.[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space height=\u00bb20px\u00bb][vc_separator type=\u00bbnormal\u00bb][vc_empty_space height=\u00bb40px\u00bb][vc_column_text]<\/p>\n<h2>Autores y personas de contacto<\/h2>\n<p><strong>\u00bfTiene preguntas, ideas o comentarios sobre este tema? P\u00f3ngase en contacto con nosotros.<\/strong>[\/vc_column_text][vc_empty_space height=\u00bb30px\u00bb][vc_empty_space height=\u00bb20px\u00bb][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb z_index=\u00bb\u00bb][vc_column width=\u00bb1\/2&#8243;][vc_single_image image=\u00bb13201&#8243; img_size=\u00bb300&#215;180&#8243; qode_css_animation=\u00bb\u00bb css=\u00bb.vc_custom_1599462359829{padding-top: 20px !important;padding-left: 20px !important;}\u00bb][vc_column_text css=\u00bb.vc_custom_1599462039108{padding-left: 20px !important;}\u00bb]<strong>Michael Damb\u00f6ck<\/strong><br \/>\n<a class=\"nounderline\" href=\"mailto:michael.damboeck@baras9z.myraidbox.de\">michael.damboeck@baras9z.myraidbox.de<\/a>[\/vc_column_text][\/vc_column][vc_column width=\u00bb1\/2&#8243;][vc_single_image image=\u00bb18415&#8243; img_size=\u00bb300&#215;180&#8243; qode_css_animation=\u00bb\u00bb css=\u00bb.vc_custom_1599204833154{padding-top: 20px !important;padding-left: 20px !important;}\u00bb][vc_column_text css=\u00bb.vc_custom_1599462057309{padding-left: 20px !important;}\u00bb]<\/p>\n<p style=\"text-align: left;\"><strong>Jonas Geschke<br \/>\n<\/strong><a class=\"nounderline\" href=\"mailto:jonas.geschke@baras9z.myraidbox.de\">jonas.geschke@baras9z.myraidbox.de<\/a><\/p>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space height=\u00bb20px\u00bb][vc_separator type=\u00bbnormal\u00bb][vc_empty_space height=\u00bb30&#8243;][vc_column_text]<\/p>\n<h3>Fuentes y m\u00e1s informaci\u00f3n<\/h3>\n<p>[\/vc_column_text][vc_column_text]<\/p>\n<p id=\"fn-1\">1. <a class=\"extern\" href=\"https:\/\/industrieanzeiger.industrie.de\/management\/vorteile-von-pay-per-use-im-maschinenbau\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/industrieanzeiger.industrie.de\/management\/vorteile-von-pay-per-use-im-maschinenbau\/<\/a> <a href=\"#fnref-1\">\u21a9<\/a><\/p>\n<p id=\"fn-2\">2. <a class=\"extern\" href=\"https:\/\/eos.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/eos.io\/<\/a> <a href=\"#fnref-2\">\u21a9<\/a><\/p>\n<p id=\"fn-3\">3. <a class=\"extern\" href=\"https:\/\/developers.eos.io\/welcome\/latest\/protocol\/consensus_protocol\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/developers.eos.io\/welcome\/latest\/protocol\/consensus_protocol<\/a> <a href=\"#fnref-3\">\u21a9<\/a><\/p>\n<p id=\"fn-4\">4. <a class=\"extern\" href=\"https:\/\/github.com\/sagan-software\/eosio-rust\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/sagan-software\/eosio-rust\/<\/a> <a href=\"#fnref-4\">\u21a9<\/a><\/p>\n<p id=\"fn-5\">5. <a class=\"extern\" href=\"https:\/\/developers.eos.io\/welcome\/latest\/getting-started\/smart-contract-development\/understanding-ABI-files\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/developers.eos.io\/welcome\/latest\/getting-started\/smart-contract-development\/understanding-ABI-files<\/a> <a href=\"#fnref-5\">\u21a9<\/a><\/p>\n<p id=\"fn-6\">6. <a class=\"extern\" href=\"https:\/\/developers.eos.io\/welcome\/v2.0\/getting-started\/development-environment\/before-you-begin\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/developers.eos.io\/welcome\/v2.0\/getting-started\/development-environment\/before-you-begin<\/a> <a href=\"#fnref-6\">\u21a9<\/a><\/p>\n<p>[\/vc_column_text][vc_empty_space height=\u00bb40&#8243;][\/vc_column][\/vc_row][vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_empty_space height=\u00bb40px\u00bb][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row css_animation=\u00bb\u00bb row_type=\u00bbrow\u00bb use_row_as_full_screen_section=\u00bbno\u00bb type=\u00bbfull_width\u00bb angled_section=\u00bbno\u00bb text_align=\u00bbleft\u00bb background_image_as_pattern=\u00bbwithout_pattern\u00bb][vc_column][vc_column_text]En la cuarta revoluci\u00f3n industrial, los modelos de negocio existentes se est\u00e1n poniendo patas arriba. As\u00ed, quienes desean seguir teniendo \u00e9xito deben mantener el pulso con la ayuda de las nuevas tecnolog\u00edas y encontrar nuevos modelos de negocio&#8230;<\/p>\n","protected":false},"author":3,"featured_media":31871,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[446],"tags":[],"class_list":["post-31870","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-insights-es"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO &#060; XITASO<\/title>\n<meta name=\"description\" content=\"Software. Beratung. Entwicklung. Realisierung. Wir planen, gestalten und entwickeln digitale L\u00f6sungen f\u00fcr Produkte, Prozesse und Plattformen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO &#060; XITASO\" \/>\n<meta property=\"og:description\" content=\"Software. Beratung. Entwicklung. Realisierung. Wir planen, gestalten und entwickeln digitale L\u00f6sungen f\u00fcr Produkte, Prozesse und Plattformen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/\" \/>\n<meta property=\"og:site_name\" content=\"XITASO\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/XITASOGmbH\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-24T09:43:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-23T11:18:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/xitaso.com\/wp-content\/uploads\/Blog_PayperUse.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"727\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Melanie P\u00f6schmann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@xitasogmbh\" \/>\n<meta name=\"twitter:site\" content=\"@xitasogmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Melanie P\u00f6schmann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/\"},\"author\":{\"name\":\"Melanie P\u00f6schmann\",\"@id\":\"https:\\\/\\\/xitaso.com\\\/#\\\/schema\\\/person\\\/b1aba4f613c8e909c475e5e9ab5fa5c1\"},\"headline\":\"Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO\",\"datePublished\":\"2020-06-24T09:43:18+00:00\",\"dateModified\":\"2021-09-23T11:18:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/\"},\"wordCount\":5522,\"publisher\":{\"@id\":\"https:\\\/\\\/xitaso.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/xitaso.com\\\/wp-content\\\/uploads\\\/Blog_PayperUse.jpg\",\"articleSection\":[\"Insights-Es\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/\",\"url\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/\",\"name\":\"Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO &#060; XITASO\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/xitaso.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/xitaso.com\\\/wp-content\\\/uploads\\\/Blog_PayperUse.jpg\",\"datePublished\":\"2020-06-24T09:43:18+00:00\",\"dateModified\":\"2021-09-23T11:18:37+00:00\",\"description\":\"Software. Beratung. Entwicklung. Realisierung. Wir planen, gestalten und entwickeln digitale L\u00f6sungen f\u00fcr Produkte, Prozesse und Plattformen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/#primaryimage\",\"url\":\"https:\\\/\\\/xitaso.com\\\/wp-content\\\/uploads\\\/Blog_PayperUse.jpg\",\"contentUrl\":\"https:\\\/\\\/xitaso.com\\\/wp-content\\\/uploads\\\/Blog_PayperUse.jpg\",\"width\":1920,\"height\":727},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/xitaso.com\\\/es\\\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/xitaso.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/xitaso.com\\\/#website\",\"url\":\"https:\\\/\\\/xitaso.com\\\/\",\"name\":\"XITASO\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/xitaso.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/xitaso.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/xitaso.com\\\/#organization\",\"name\":\"XITASO GmbH\",\"url\":\"https:\\\/\\\/xitaso.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/xitaso.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/xitaso.com\\\/wp-content\\\/uploads\\\/XITASO-Logo-quer.png\",\"contentUrl\":\"https:\\\/\\\/xitaso.com\\\/wp-content\\\/uploads\\\/XITASO-Logo-quer.png\",\"width\":1746,\"height\":438,\"caption\":\"XITASO GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/xitaso.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/XITASOGmbH\\\/\",\"https:\\\/\\\/x.com\\\/xitasogmbh\",\"https:\\\/\\\/www.linkedin.com\\\/organization-guest\\\/company\\\/xitasogmbh\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCQ4Qjq-Pr58NjGVLryNEuyA\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/xitaso.com\\\/#\\\/schema\\\/person\\\/b1aba4f613c8e909c475e5e9ab5fa5c1\",\"name\":\"Melanie P\u00f6schmann\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO &#060; XITASO","description":"Software. Beratung. Entwicklung. Realisierung. Wir planen, gestalten und entwickeln digitale L\u00f6sungen f\u00fcr Produkte, Prozesse und Plattformen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/","og_locale":"es_ES","og_type":"article","og_title":"Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO &#060; XITASO","og_description":"Software. Beratung. Entwicklung. Realisierung. Wir planen, gestalten und entwickeln digitale L\u00f6sungen f\u00fcr Produkte, Prozesse und Plattformen.","og_url":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/","og_site_name":"XITASO","article_publisher":"https:\/\/www.facebook.com\/XITASOGmbH\/","article_published_time":"2020-06-24T09:43:18+00:00","article_modified_time":"2021-09-23T11:18:37+00:00","og_image":[{"width":1920,"height":727,"url":"https:\/\/xitaso.com\/wp-content\/uploads\/Blog_PayperUse.jpg","type":"image\/jpeg"}],"author":"Melanie P\u00f6schmann","twitter_card":"summary_large_image","twitter_creator":"@xitasogmbh","twitter_site":"@xitasogmbh","twitter_misc":{"Escrito por":"Melanie P\u00f6schmann","Tiempo de lectura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/#article","isPartOf":{"@id":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/"},"author":{"name":"Melanie P\u00f6schmann","@id":"https:\/\/xitaso.com\/#\/schema\/person\/b1aba4f613c8e909c475e5e9ab5fa5c1"},"headline":"Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO","datePublished":"2020-06-24T09:43:18+00:00","dateModified":"2021-09-23T11:18:37+00:00","mainEntityOfPage":{"@id":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/"},"wordCount":5522,"publisher":{"@id":"https:\/\/xitaso.com\/#organization"},"image":{"@id":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/#primaryimage"},"thumbnailUrl":"https:\/\/xitaso.com\/wp-content\/uploads\/Blog_PayperUse.jpg","articleSection":["Insights-Es"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/","url":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/","name":"Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO &#060; XITASO","isPartOf":{"@id":"https:\/\/xitaso.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/#primaryimage"},"image":{"@id":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/#primaryimage"},"thumbnailUrl":"https:\/\/xitaso.com\/wp-content\/uploads\/Blog_PayperUse.jpg","datePublished":"2020-06-24T09:43:18+00:00","dateModified":"2021-09-23T11:18:37+00:00","description":"Software. Beratung. Entwicklung. Realisierung. Wir planen, gestalten und entwickeln digitale L\u00f6sungen f\u00fcr Produkte, Prozesse und Plattformen.","breadcrumb":{"@id":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/#primaryimage","url":"https:\/\/xitaso.com\/wp-content\/uploads\/Blog_PayperUse.jpg","contentUrl":"https:\/\/xitaso.com\/wp-content\/uploads\/Blog_PayperUse.jpg","width":1920,"height":727},{"@type":"BreadcrumbList","@id":"https:\/\/xitaso.com\/es\/pago-por-uso-en-la-industria-primeros-pasos-con-eosio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/xitaso.com\/es\/"},{"@type":"ListItem","position":2,"name":"Modelos de negocio de pago por uso en la industria. Primeros pasos con el protocolo blockchain EOSIO"}]},{"@type":"WebSite","@id":"https:\/\/xitaso.com\/#website","url":"https:\/\/xitaso.com\/","name":"XITASO","description":"","publisher":{"@id":"https:\/\/xitaso.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/xitaso.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/xitaso.com\/#organization","name":"XITASO GmbH","url":"https:\/\/xitaso.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/xitaso.com\/#\/schema\/logo\/image\/","url":"https:\/\/xitaso.com\/wp-content\/uploads\/XITASO-Logo-quer.png","contentUrl":"https:\/\/xitaso.com\/wp-content\/uploads\/XITASO-Logo-quer.png","width":1746,"height":438,"caption":"XITASO GmbH"},"image":{"@id":"https:\/\/xitaso.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/XITASOGmbH\/","https:\/\/x.com\/xitasogmbh","https:\/\/www.linkedin.com\/organization-guest\/company\/xitasogmbh","https:\/\/www.youtube.com\/channel\/UCQ4Qjq-Pr58NjGVLryNEuyA"]},{"@type":"Person","@id":"https:\/\/xitaso.com\/#\/schema\/person\/b1aba4f613c8e909c475e5e9ab5fa5c1","name":"Melanie P\u00f6schmann"}]}},"_links":{"self":[{"href":"https:\/\/xitaso.com\/es\/wp-json\/wp\/v2\/posts\/31870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xitaso.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xitaso.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xitaso.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/xitaso.com\/es\/wp-json\/wp\/v2\/comments?post=31870"}],"version-history":[{"count":0,"href":"https:\/\/xitaso.com\/es\/wp-json\/wp\/v2\/posts\/31870\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xitaso.com\/es\/wp-json\/wp\/v2\/media\/31871"}],"wp:attachment":[{"href":"https:\/\/xitaso.com\/es\/wp-json\/wp\/v2\/media?parent=31870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xitaso.com\/es\/wp-json\/wp\/v2\/categories?post=31870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xitaso.com\/es\/wp-json\/wp\/v2\/tags?post=31870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}