Soy una abeja nueva en Ethereum Blockchain en la implementación de esto como una solución potencial para la aplicación descentralizada. En el proceso de identificar la solución, me encontré con un problema en el que, ¿qué pasa si quiero administrar dinámicamente la creación/eliminación de nodos en una cadena de bloques existente/en funcionamiento?
Por ejemplo: si tengo una cadena de bloques privada que se creó inicialmente con 5 nodos ejecutándose y comunicándose entre sí. Cada nodo tiene un archivo de nodos estáticos con información (de nodo) para emparejarse entre sí. Ahora bien, si quiero arrancar uno de los nodos de la red de la cadena de bloques, actualizaría el nodo estático eliminando el nodo impar de la lista de enodos y lo replicaría en cada nodo. Esto potencialmente expulsaría el nodo eliminado de la red Blockchain.
¿Qué pasa si quiero administrar esta eliminación de nodos sin tocar cada uno de los nodos (suponiendo que los nodos no estén en nuestra capacidad para implementar los cambios). ¿Existe alguna solución para agregar/eliminar nodos dinámicamente sin realizar cambios en cada nodo? también sin restablecer los datos de Blockchain (sin restablecer el bloque de génesis).
Si alguien tiene alguna duda sobre mi pregunta, por favor escríbame.
Cualquier ayuda es muy apreciada.
Gracias.
Recomendaría agregar al encabezado del bloque ( types.Header
) un nuevo campo llamado CustomerHash
, este hash sería generado por un algoritmo sha256 en los datos del cliente (nombre + dirección + cualquier información que desee). Cada cliente tendría un hash único.
Ahora que tiene hashes para todos sus clientes, habría puesto esta lista de clientes en la red Swarm, para que sea de acceso público. Cada nodo descargaría la lista una vez cada 1000 bloques (o algo así).
Para asegurarse de que esta lista solo la emita usted (dado que usted es una autoridad central aquí), debe incorporar un mecanismo de encriptación. Debe cifrar la lista con su clave privada y cada nodo estará seguro de que es la lista emitida por usted. De esta manera, haría que la cadena de bloques solo la pudieran usar sus clientes, porque solo ellos podrían extraer un bloque. Si un extraño intenta poner algo CustomerHash
que no está en esta lista, otros mineros rechazarán su bloqueo como inválido.
El resultado es: tienes una cadena de bloques pública, pero solo la pueden minar aquellos que pagaron. Y será accesible para todos los que estén interesados en obtener los datos disponibles en la cadena.
Así es como lo implementaría, es una forma transparente y clara de hacer las cosas mientras mantienes el estatus de autoridad central.
Nulik
Nulik
PSY