Retraso de propagación de Ethereum

Tengo una pregunta de nivel muy principiante. Supongamos que tengo una lista que contiene la dirección IP de diferentes máquinas y quiero compartirlas a través de ethereum blockchain y supongamos que la lista es muy grande a medida que pasa el tiempo, cuánto tiempo llevará compartir con otros nodos y agregar al bloque. ? ¿Tarda 14 segundos independientemente del tamaño de la lista o qué? Si hay alguna referencia disponible, sería genial. Por favor ayuda.

Respuestas (1)

Este es solo un ejemplo artificial con fines de aprendizaje. Sería costoso operar.

Crearía un contrato para mantener el estado y la función de actualización. He dejado de lado la preocupación por el control de acceso y he verificado si hay duplicados para mantener el ejemplo bastante breve.

  1. El contrato se propagaría tan pronto como se extraiga la transacción de implementación.
  2. Las inserciones (adjuntar, tal como se implementaron) se propagarían tan pronto como se extraiga la appendIP("address")transacción enviada al contrato.

-

pragma solidity 0.4.25;

contract IPList {

    string[] public ipList;

    event LogNewIp(address sender, string ip);

    function appendIP(string ip) public {
        ipList.push(ip);
        emit LogNewIp(msg.sender, ip);
    }

    function getIPCount() public view returns(uint count) {
        return ipList.length;
    }
}

Lo importante es el proceso de minería. La transacción "quema" alrededor de 65.000 de gas, que es un peso computacional que incluye el almacenamiento. Las transacciones incluyen una oferta por gasPricela cual es el precio que el usuario está dispuesto a pagar por cada unidad de gas. Juntos, gasveces gasPricees el costo de la transacción, en ETH.

¿Por qué es eso importante? Debido a que los mineros priorizan las transacciones con mayor gasPrice. Con un precio acorde, la transacción es un candidato probable para su inclusión en 15-30 segundos. Con un precio más bajo, y es posible que no se extraiga por un tiempo, o que no se extraiga en absoluto.

Una vez minada, la transacción forma parte del historial canónico de la cadena de bloques y todos los nodos actualizados la conocerán en unos segundos.

En caso de que no esté claro, la transacción formará parte de un determinado bloque y, por lo tanto, será conocida por todos los nodos que hayan alcanzado ese bloque, que serán la mayoría de ellos en un corto período de tiempo.

Espero eso ayude.

Hitchens: ¿cuánto tiempo tarda el bloque extraído en propagarse a todos los nodos de una red? ¿Cuánto duran los nodos completos y cuánto duran los nodos ligeros?
Me detendría antes de "todos" porque eso no tiene en cuenta su condición. La mayoría de los nodos se mantienen al día con los bloques más recientes, por lo que la mayoría de los nodos sabrán dentro de los 15 segundos posteriores a la inclusión en un bloque. Mire ethstats.net para tener una mejor idea.