gestión dinámica de membresía de nodo en Ethereum Blockchain

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.

puede modificar los protocolos para agregar ACL a su cadena de bloques. Esto requeriría modificar el protocolo Discovery ( github.com/ethereum/wiki/wiki/Node-discovery-protocol ) y probablemente también el protocolo Ethereum Wire ( github.com/ethereum/wiki/wiki/Ethereum-Wire-Protocol )
No veo ningún sentido en cerrar una aplicación basada en blockchain. Crear una aplicación centralizada en su caso va a ser mejor. El objetivo de usar la tecnología blockchain es distribuir la aplicación a otros pares, por lo que no puede controlar los nodos. Su intento de controlar los nodos va en contra del concepto de usar tecnología blockchain
Gracias por su respuesta. Considere un escenario en el que le gustaría crear una aplicación distribuida. Esta aplicación permitiría la creación de nodos para cada cliente incorporado. Ahora, esta es una cadena privada donde solo los clientes autorizados pueden realizar transacciones. Los clientes crecerán dinámicamente en la cadena, y también podrían abandonar la cadena en algún momento. Si ya he creado una cadena de bloques privada, ¿cómo podría incorporar un nuevo miembro (nodo) en esta cadena de bloques en ejecución y también cómo elimino un nodo? ¿Piensas en alguna solución a tal escenario? Gracias.

Respuestas (1)

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 CustomerHashque 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.

Gracias por su respuesta. Descubrí cómo una combinación de archivos de nodos estáticos junto con un comando dinámico para agregar un par aprovecharía las responsabilidades de administración para los nodos (administradores) en una red Blockchain. Sin embargo, ciertamente hay una forma más inteligente de administrar la gestión dinámica de membresía en una red Blockchain, pero por el momento estoy tomando esta solución como solución inicial y voy a construir e improvisar sobre ella.