{"id":34631,"date":"2019-10-31T21:59:31","date_gmt":"2019-10-31T18:59:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ton-telegram-open-network-chast-2-blokchejny-shardirovanie\/"},"modified":"2019-10-31T21:59:31","modified_gmt":"2019-10-31T18:59:31","slug":"ton-telegram-open-network-chast-2-blokchejny-shardirovanie","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/ton-telegram-open-network-chast-2-blokchejny-shardirovanie","title":{"rendered":"TON: Telegram Open Network. Parte 2: Blockchains, sharding","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"TON: Telegram Open Network. Parte 2: Blockchains, sharding\" src=\"\/wp-content\/uploads\/2019\/05\/e2a24aa1dda6a435e60da257af662853.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Este texto es la continuaci\u00f3n de una serie de art\u00edculos en los que examino la estructura de la red descentralizada Telegram Open Network (TON), que supuestamente se lanzar\u00e1 este a\u00f1o. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/354366\/\">parte anterior<\/a><\/noindex> He descrito su nivel m\u00e1s b\u00e1sico: el m\u00e9todo de interacci\u00f3n entre nodos.<\/p>\n<p><\/p>\n<p>Por si acaso, recuerdo que no tengo relaci\u00f3n con el desarrollo de esta red y todo el material proviene de una fuente abierta (aunque no verificada) \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/denull.ru\/telegram\/ton-tech.pdf\">del documento<\/a><\/noindex> (tambi\u00e9n hay un documento adjunto, <noindex><a rel=\"nofollow\" href=\"https:\/\/denull.ru\/telegram\/ton.pdf\">un folleto<\/a><\/noindex>, que expone brevemente los puntos principales), publicado a finales del a\u00f1o pasado. La cantidad de informaci\u00f3n en este documento, en mi opini\u00f3n, sugiere su autenticidad, aunque no hay confirmaciones oficiales de ello.<\/p>\n<p><\/p>\n<p>Hoy analizaremos el componente principal de TON: la blockchain.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"bazovye-ponyatiya\">Conceptos b\u00e1sicos<\/h3>\n<p><\/p>\n<p><strong>Cuenta<\/strong> (<em>account<\/em>). Un conjunto de datos identificado por un n\u00famero de 256 bits <em>account_id<\/em> (m\u00e1s com\u00fanmente, es la clave p\u00fablica del propietario de la cuenta). En el caso b\u00e1sico (ver m\u00e1s abajo <em>cero blockchain<\/em>), estos datos representan el balance del usuario. Cualquiera puede \"tomar\" un determinado <em>account_id<\/em> pero su valor solo puede ser modificado de acuerdo con ciertas reglas.<\/p>\n<p><\/p>\n<p><strong>Contrato inteligente<\/strong> (<em>smart contract<\/em>). En esencia, es un caso particular de cuenta, complementado con el c\u00f3digo del smart contract y un almacenamiento de sus variables. Si en el caso de una \"billetera\" se puede depositar y retirar dinero de forma relativamente simple y predefinida, en el caso del smart contract esas reglas est\u00e1n escritas en forma de su c\u00f3digo (en un lenguaje de programaci\u00f3n de Turing completo).<\/p>\n<p><\/p>\n<p><strong>Estado de la blockchain<\/strong> (<em>state of blockchain<\/em>). La combinaci\u00f3n de los estados de todas las cuentas\/smart contracts (en un sentido abstracto, es una tabla hash donde las claves son los identificadores de las cuentas y los valores son los datos almacenados en las cuentas).<\/p>\n<p><\/p>\n<p><strong>Mensaje<\/strong> (<em>message<\/em>). Anteriormente, utilic\u00e9 la expresi\u00f3n \"depositar y retirar dinero\" \u2014 este es un ejemplo espec\u00edfico de mensaje (\"transferir <em>N gramos<\/em> de la cuenta <em>account_1<\/em> a la cuenta <em>account_2<\/em>\"). Evidentemente, solo un nodo que posea la clave privada de la cuenta puede enviar tal mensaje <em>account_1<\/em> \u2014 y debe confirmar esto con una firma. El resultado de la entrega de tales mensajes a una cuenta normal es el aumento de su saldo, y para un smart contract es la ejecuci\u00f3n de su c\u00f3digo (que procesar\u00e1 la recepci\u00f3n del mensaje). Por supuesto, tambi\u00e9n existen otros mensajes (que transfieren no montos de dinero, sino datos arbitrarios entre smart contracts).<\/p>\n<p><\/p>\n<p><strong>La transacci\u00f3n<\/strong> (<em>transacci\u00f3n<\/em>). El hecho de la entrega del mensaje se llama transacci\u00f3n. Las transacciones cambian el estado de la blockchain. Es a partir de las transacciones (registros de entrega de mensajes) de donde se forman los bloques en la blockchain. En este sentido, podemos imaginar el estado de la blockchain como una base de datos incremental: todos los bloques son 'diffs' que deben aplicarse secuencialmente para obtener el estado actual de la base de datos. Sobre los detalles del empaquetado de estos 'diffs' (y la recuperaci\u00f3n del estado completo a partir de ellos) se hablar\u00e1 en el siguiente art\u00edculo.<\/p>\n<p><\/p>\n<h3 id=\"blokcheyn-v-ton-chto-eto-i-zachem\">Blockchain en TON: \u00bfqu\u00e9 es y para qu\u00e9 sirve?<\/h3>\n<p><\/p>\n<p>Como se mencion\u00f3 en el art\u00edculo anterior, <em>la blockchain es una estructura de datos cuyos elementos (bloques) est\u00e1n organizados en una 'cadena', y cada bloque siguiente en la cadena contiene el hash del anterior<\/em>. En los comentarios se plante\u00f3 la pregunta: \u00bfpara qu\u00e9 necesitamos realmente tal estructura de datos cuando ya tenemos DHT, que es una tabla hash distribuida? Es evidente que algunos datos pueden almacenarse en DHT, pero esto solo es adecuado para informaci\u00f3n que no es demasiado 'sensible'. No se pueden almacenar los saldos de criptomonedas en DHT, principalmente debido a la falta de verificaciones de <em>integridad<\/em>. De hecho, toda la complejidad de la estructura de blockchain surge para evitar interferencias en los datos almacenados en ella.<\/p>\n<p><\/p>\n<p>Sin embargo, la blockchain en TON parece ser a\u00fan m\u00e1s compleja que en la mayor\u00eda de los otros sistemas distribuidos, y hay dos razones para ello. La primera es el deseo de minimizar la necesidad de <em>forks<\/em>. En las criptomonedas tradicionales, todos los par\u00e1metros est\u00e1n establecidos en la etapa inicial y cualquier intento de cambiarlos pr\u00e1cticamente conduce a la aparici\u00f3n de un 'universo alternativo de criptomonedas'. La segunda raz\u00f3n es el soporte para el sharding de la blockchain. La blockchain es una estructura que no puede volverse m\u00e1s peque\u00f1a con el tiempo; y normalmente, cada nodo responsable del funcionamiento de la red se ve obligado a almacenarla en su totalidad. En los sistemas tradicionales (centralizados), se utiliza el sharding para resolver tales problemas: parte de los registros en la base de datos se almacena en un servidor, parte en otro, etc. En el caso de las criptomonedas, esta funcionalidad sigue siendo bastante rara, especialmente porque es complicado a\u00f1adir sharding a un sistema donde no fue planeado desde el principio.<em>\u00bfC\u00f3mo planea TON resolver ambos problemas descritos anteriormente?<\/em>, <em>fragmentaci\u00f3n<\/em>) blockchain. El blockchain es una estructura que no puede hacerse m\u00e1s peque\u00f1a con el tiempo; y generalmente, cada nodo responsable del funcionamiento de la red se ve obligado a almacenarlo completamente. En sistemas tradicionales (centralizados), se utiliza la fragmentaci\u00f3n para resolver problemas similares: parte de los registros en la base de datos se encuentra en un servidor, otra parte en otro, etc. En el caso de las criptomonedas, dicha funcionalidad es bastante rara hasta ahora, especialmente porque es complicado a\u00f1adir fragmentaci\u00f3n a un sistema donde no estaba planificada originalmente.<\/p>\n<p><\/p>\n<p>\u00bfC\u00f3mo planea TON resolver ambos problemas descritos anteriormente?<\/p>\n<p><\/p>\n<h3 id=\"soderzhimoe-blokcheyna-vorkcheyny\">Contenido de la blockchain. Workchains.<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TON: Telegram Open Network. Parte 2: Blockchains, sharding\" src=\"\/wp-content\/uploads\/2019\/05\/c4f0f6e6702322ad4312cb262b3a0fab.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Primero, hablemos sobre qu\u00e9 se planea almacenar en la blockchain. All\u00ed se almacenar\u00e1n los estados de las cuentas (\"billeteras\" en el caso b\u00e1sico) y de los contratos inteligentes (para simplificar, consideraremos que esto es lo mismo que las cuentas). En esencia, ser\u00e1 una simple tabla hash: las claves ser\u00e1n los identificadores <strong>account_id<\/strong>, y los valores ser\u00e1n estructuras de datos que contienen elementos como:<\/p>\n<p><\/p>\n<ul>\n<li>saldo;<\/li>\n<li>c\u00f3digo del contrato inteligente (solo para contratos inteligentes);<\/li>\n<li>almacenamiento de datos del contrato inteligente (solo para contratos inteligentes);<\/li>\n<li>estad\u00edsticas;<\/li>\n<li>(<em>opcionalmente<\/em>) clave p\u00fablica para transferencias desde la cuenta, por defecto account_id;<\/li>\n<li>cola de mensajes salientes (aqu\u00ed se almacenan para enviar al destinatario);<\/li>\n<li>lista de los \u00faltimos mensajes entregados a esta cuenta.<\/li>\n<\/ul>\n<p><\/p>\n<p>Como se mencion\u00f3 anteriormente, los bloques consisten directamente en transacciones: mensajes entregados a diversas cuentas account_id. Sin embargo, adem\u00e1s de account_id, los mensajes tambi\u00e9n contienen un campo de 32 bits <em>workchain_id<\/em> \u2014 el identificador del llamado <strong>workchain<\/strong> (<em>workchain<\/em>, <em>blockchain en funcionamiento<\/em>). Esto permite tener m\u00faltiples blockchains independientes entre s\u00ed con diferentes configuraciones. En este caso, workchain_id = 0 se considera un caso especial, <strong>workchain nulo<\/strong> \u2014 precisamente los saldos en \u00e9l corresponder\u00e1n a la criptomoneda TON (Grams). Es muy probable que, al principio, no existan otros workchains.<\/p>\n<p><\/p>\n<h3 id=\"shardcheyny-infinite-sharding-paradigm\">Sharding. Paradigma de Sharding Infinito.<\/h3>\n<p><\/p>\n<p>Pero la cantidad de blockchains no se detiene aqu\u00ed. Analicemos el sharding. Imaginemos que a cada cuenta (account_id) se le asigna su propia blockchain: en ella reposan todos los mensajes que le llegan, y los estados de todas esas blockchains se almacenan en nodos separados.<\/p>\n<p><\/p>\n<p>Por supuesto, esto es bastante derrochador: probablemente, en cada uno de estos <strong>shardchains<\/strong> (<em>shardchain<\/em>, <em>blockchain shard<\/em>) las transacciones llegar\u00e1n muy raramente, y se necesitar\u00e1n muchos nodos potentes (adelantando, se\u00f1alar\u00e9 que no se trata simplemente de clientes en tel\u00e9fonos m\u00f3viles, sino de servidores serios).<\/p>\n<p><\/p>\n<p>Por lo tanto, los shardchains agrupan cuentas por los prefijos binarios de sus identificadores: si un shardchain tiene un prefijo 0110, entonces incluir\u00e1 las transacciones de todas las account_id que comienzan con esos d\u00edgitos. Este <em>shard_prefix<\/em> puede tener una longitud de 0 a 60 bits, y lo m\u00e1s importante es que puede cambiar din\u00e1micamente.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TON: Telegram Open Network. Parte 2: Blockchains, sharding\" src=\"\/wp-content\/uploads\/2019\/05\/568aec7ad3d8cc3e268f0e60d453b502.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cuando uno de los shardchains comienza a recibir un n\u00famero excesivo de transacciones, los nodos que trabajan en \u00e9l, siguiendo unas reglas predefinidas, lo \"dividen\" en dos subcomponentes; sus prefijos ser\u00e1n un bit m\u00e1s largos (y para uno de ellos este bit ser\u00e1 0, y para el otro ser\u00e1 1). Por ejemplo, <em>shard_prefix<\/em> = <u>0110<\/u>b se dividir\u00e1 en <u>0110<\/u>0b y <u>0110<\/u>1b. A su vez, si dos shardchains \"vecinos\" comienzan a sentir suficiente tranquilidad (durante alg\u00fan tiempo), se fusionar\u00e1n nuevamente.<\/p>\n<p><\/p>\n<p>De esta manera, el sharding se hace \"de abajo hacia arriba\"; asumimos que cada cuenta tiene su propio shard, pero estos est\u00e1n, por un tiempo, \"pegados\" por prefijos. Esto es lo que significa <strong>Paradigma de Fragmentaci\u00f3n Infinita<\/strong> (<em>la par\u00e1bola de sharding infinito.<\/em>).<\/p>\n<p><\/p>\n<p>Cabe destacar que los workchains existen solo de manera virtual; en realidad, <em>workchain_id<\/em> esto es parte del identificador de un shardchain espec\u00edfico. Hablando en t\u00e9rminos formales, cada shardchain se define por un par de n\u00fameros (<em>workchain_id<\/em>, <em>shard_prefix<\/em>).<\/p>\n<p><\/p>\n<h3 id=\"ispravlenie-oshibok-vertikalnye-blokcheyny\">Correcci\u00f3n de errores. Blockchains verticales.<\/h3>\n<p><\/p>\n<p>Tradicionalmente se considera que cualquier transacci\u00f3n en una blockchain est\u00e1 \"esculpida en piedra\". Sin embargo, en el caso de TON se prev\u00e9 la posibilidad de \"reescribir la historia\" \u2014 en caso de que alguien (el llamado <em>nodo \"pescador\"<\/em>) demuestre que uno de los bloques fue firmado incorrectamente. En este caso, se a\u00f1ade un bloque correctivo especial al shardchain correspondiente, que contiene el hash del bloque siendo corregido (y no del \u00faltimo bloque en el shardchain). Al considerar el shardchain como una cadena de bloques dispuesta horizontalmente, se puede decir que el bloque correctivo se adjunta al bloque err\u00f3neo no a la derecha, sino en la parte superior; por tanto, se considera que se convierte en parte de un peque\u00f1o \"blockchain vertical\". As\u00ed, se puede afirmar que los shardchains son <em>blockchains bidimensionales.<\/em>.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TON: Telegram Open Network. Parte 2: Blockchains, sharding\" src=\"\/wp-content\/uploads\/2019\/05\/eda526705f5febd37995901b5542264c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>En caso de que, tras un bloque err\u00f3neo, los bloques posteriores hagan referencia a los cambios introducidos (es decir, se hayan realizado nuevas transacciones basadas en datos no v\u00e1lidos), se a\u00f1aden correcciones a esos bloques \"encima\". Si los bloques no afectaron a la informaci\u00f3n \"afectada\", estas \"ondas correctivas\" no se extienden a ellos. Por ejemplo, en la ilustraci\u00f3n anterior, se consider\u00f3 incorrecta la transacci\u00f3n del primer bloque, que aumentaba el saldo de la cuenta C; por lo tanto, la transacci\u00f3n que reduce el saldo de esta cuenta en el tercer bloque tambi\u00e9n debe ser anulada, y se debe a\u00f1adir un bloque correctivo encima del bloque mismo.<\/p>\n<p><\/p>\n<p>Es necesario se\u00f1alar que, aunque los bloques correctivos se muestran colocados \"sobre\" los originales, en realidad se escriben al final de la cadena de bloques correspondiente (donde deben estar cronol\u00f3gicamente). La disposici\u00f3n bidimensional simplemente muestra a qu\u00e9 punto de la cadena de bloques se 'enganchar\u00e1n' (a trav\u00e9s del hash del bloque original que contienen).<\/p>\n<p><\/p>\n<p>Se podr\u00eda reflexionar por separado sobre cu\u00e1n buena es la decisi\u00f3n de \"cambiar el pasado\". Parecer\u00eda que, si permitimos la posibilidad de que aparezca un bloque incorrecto en la shardchain, no se puede evitar la posibilidad de que aparezca un bloque correctivo err\u00f3neo. Aqu\u00ed, tanto como puedo juzgar, la diferencia radica en la cantidad de nodos que deben alcanzar consenso sobre los nuevos bloques: bajo cada shardchain trabajar\u00e1 un relativamente peque\u00f1o \"<em>grupo de trabajo<\/em>de\" nodos (que cambia bastante a menudo), mientras que la introducci\u00f3n de bloques correctivos requerir\u00e1 el consenso de todos <em>los nodos validadores<\/em>. Hablar\u00e9 m\u00e1s sobre validadores, grupos de trabajo y otros roles de los nodos en el siguiente art\u00edculo.<\/p>\n<p><\/p>\n<h3 id=\"odin-blokcheyn-chtob-pravit-vsemi\">Una cadena de bloques para gobernarlos a todos<\/h3>\n<p><\/p>\n<p>Se ha mencionado mucha informaci\u00f3n sobre los diferentes tipos de cadenas de bloques, que tambi\u00e9n debe ser almacenada en alg\u00fan lugar. En particular, se trata de la siguiente informaci\u00f3n:<\/p>\n<p><\/p>\n<ul>\n<li>sobre la cantidad y configuraciones de los workchains;<\/li>\n<li>sobre la cantidad de shardchains y sus prefijos;<\/li>\n<li>sobre qu\u00e9 nodos son actualmente responsables de qu\u00e9 shardchains;<\/li>\n<li>hashes de los \u00faltimos bloques a\u00f1adidos a todas las shardchains.<\/li>\n<\/ul>\n<p><\/p>\n<p>Como ya habr\u00e1n deducido, todas estas cosas se registran en otra cadena de bloques de almacenamiento \u2014 <strong>masterchain<\/strong> (<em>masterchain<\/em>, <em>cadena de bloques maestra<\/em>). Gracias a la presencia de hashes de los bloques de todas las cadenas laterales en sus bloques, hace que el sistema est\u00e9 altamente interconectado. Esto significa que la generaci\u00f3n de un nuevo bloque en la cadena principal ocurrir\u00e1 directamente despu\u00e9s de la generaci\u00f3n de bloques en las cadenas laterales, y se espera que los bloques en las cadenas laterales aparezcan casi simult\u00e1neamente cada 5 segundos, mientras que el siguiente bloque en la cadena principal aparecer\u00e1 un segundo despu\u00e9s de esto.<\/p>\n<p><\/p>\n<p>Pero, \u00bfqui\u00e9n ser\u00e1 responsable de llevar a cabo todo este tit\u00e1nico trabajo: la transmisi\u00f3n de mensajes, la ejecuci\u00f3n de contratos inteligentes, la formaci\u00f3n de bloques en las cadenas laterales y en la cadena principal, y adem\u00e1s la verificaci\u00f3n de bloques en busca de errores? \u00bfRealmente se encargar\u00e1 de todo esto en silencio los tel\u00e9fonos de millones de usuarios con Telegram instalado? O, tal vez, el equipo de Durov renunciar\u00e1 a las ideas de descentralizaci\u00f3n y ser\u00e1n sus servidores los que lo hagan a la antigua usanza?<\/p>\n<p><\/p>\n<p>De hecho, ninguna de las dos respuestas es correcta. Pero el espacio de este art\u00edculo se est\u00e1 agotando r\u00e1pidamente, por lo que la discusi\u00f3n sobre los diferentes roles de los nodos (ya es posible que haya notado menciones de algunos de ellos), as\u00ed como sobre las mec\u00e1nicas de su funcionamiento, se tratar\u00e1 en la siguiente parte.<\/p>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/354568\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u2014 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e) \u0433\u043e\u0442\u043e\u0432\u044f\u0449\u0435\u0439\u0441\u044f \u043a \u0432\u044b\u0445\u043e\u0434\u0443 \u0432 \u044d\u0442\u043e\u043c \u0433\u043e\u0434\u0443 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 Telegram Open Network (TON). \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0435\u0451 \u0441\u0430\u043c\u044b\u0439 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u2014 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0443\u0437\u043b\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044d\u0442\u043e\u0439 \u0441\u0435\u0442\u0438 \u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u044e \u0438 \u0432\u0435\u0441\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26098,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-34631","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/ton-telegram-open-network-chast-2-blokchejny-shardirovanie\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47TON: Telegram Open Network. \u0427\u0430\u0441\u0442\u044c 2: \u0411\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u044b, \u0448\u0430\u0440\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/ton-telegram-open-network-chast-2-blokchejny-shardirovanie\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:59:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:59:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47TON: Telegram Open Network. Parte 2: Cadenas de bloques, fragmentaci\u00f3n | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/ton-telegram-open-network-chast-2-blokchejny-shardirovanie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47TON: Telegram Open Network. \u0427\u0430\u0441\u0442\u044c 2: \u0411\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u044b, \u0448\u0430\u0440\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 | ProHoster","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/ton-telegram-open-network-chast-2-blokchejny-shardirovanie","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:59:31+00:00","article:modified_time":"2019-10-31T18:59:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34631","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 20:00:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:17:24","updated":"2026-01-21 20:00:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/34631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=34631"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/34631\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/26098"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=34631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=34631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=34631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}