¿Cómo acceder a todas las cuentas a través de múltiples nodos? JS/Web3.js/API

Estoy ejecutando una red privada de desarrollo de ethereum con 3 nodos conectados entre sí. Antes de hacer mi pregunta, algo sobre mi configuración. Así es como empiezo esos nodos:

geth --networkid 2345 --datadir /some/dir/01 --rpc --rpccorsdomain "*" --rpcapi "db,net,web3,miner,eth,personal" --port "30301" --rpcport 8101 --maxpeers 2 --identity "MyChain01" console

Esta es solo la declaración para un nodo, los otros tienen diferentes números de puerto.

Una vez que todos los nodos están activos, los conecto dentro de la consola de JavaScript a través de:

admin.addPeer("enode:1234567890.....")

y al ejecutar:

admin.peers

Estoy recibiendo a los otros compañeros en consecuencia. Cuando empiezo a minar en un nodo, los bloques minados se sincronizan con los demás, por lo que todo funciona bien.

Ahora aquí viene mi pregunta. Digamos que he creado 2 cuentas en Node01, 2 cuentas en Node02 y 2 cuentas en Node03. ¿Cómo podría realmente hacer cualquier transacción entre nodos? Entonces, ¿de cuenta1.nodo01 a cuenta1.nodo02?

Al ejecutar:

personal.listAccounts

en cualquier nodo dado, solo obtengo las cuentas creadas en ese mismo nodo.

¿Alguien sabe si hay una solución para acceder a todas las cuentas desde todos los nodos conectados? Tal vez me estoy perdiendo un truco aquí, pero realmente no pude encontrar nada que explicara cómo hacerlo.

Gracias Borinho

Gran pregunta, aclara una de mis mayores dudas. Supongo que las cuentas no son "globales" como pensaba. Me preguntaba si podría darme su opinión sobre mi pregunta (espero que esté relacionada): ethereum.stackexchange.com/questions/34964/…

Respuestas (2)

para todos los que tal vez hagan la misma pregunta, quería dar una respuesta a mi pregunta a mi leal saber y entender.

Básicamente, lo que describí anteriormente es el concepto de una "billetera caliente". Como en el ejemplo anterior, la cuenta se crea directamente en el nodo, todos los datos, claves, etc. se almacenan en ese nodo. Ahora que las billeteras, o contenedores de claves, no deben (y supongo que no pueden) copiarse entre nodos, la pregunta inicial en realidad no tiene sentido o simplemente es incorrecta. Otro problema es que en realidad hice dos preguntas en una.

Transferir algo de cuenta1.nodo1 a cuenta1.nodo2 no es ningún problema (dentro de la misma red). Simplemente haz:

eth.sendTransaction({from:sender, to:receiver, value: amount})

La otra pregunta que me hacía era algo así como un explorador de blockchain. Listado, vía web3, de lo que está pasando en la red. Con web3.js, uno puede consultar todos los datos de la cuenta en cualquier nodo específico, pero no todas las cuentas dentro de una instalación privada de cadena de bloques (a menos que alguien me diga lo contrario).

Espero que ayude a alguien en algún momento :)

Boriño

  1. Por el momento, no hay forma de que pueda acceder a su cuenta en otra computadora sin agregar sus archivos clave allí. eso no es un riesgo inmediato, ya que todavía están protegidos con contraseña, pero... lo entiendes.

  2. Pero hay una billetera cerebral ( https://github.com/ConsenSys/eth-lightwallet ). Qué puede hacer con él: cree cuentas sobre la marcha y utilícelas simplemente identificándose con esa semilla (que consta de 10 palabras generadas por un patrón especial) y una contraseña, que elige cada vez que usa la cuenta en su navegador ( no tiene nada que ver con la contraseña de una cuenta, ya que esas 10 palabras son lo único que importa ;) ) Lo que no puede hacer todavía es transformar sus billeteras existentes en una billetera cerebral.

Entonces, si desea tener una cuenta que puede usar en cualquier lugar sin un archivo de claves, cree algunas billeteras cerebrales y aloje los scripts necesarios en línea, para que pueda acceder a ellos desde cualquier lugar. y, por supuesto, anote esas 10 palabras, ya que generan las claves sobre la marcha cada vez que quiera usar esta billetera.

  1. Descubrir todos los saldos de todos los usuarios requeriría mucho trabajo matemático (rastrear todas las transiciones, el éter extraído, etc. hasta hace mucho tiempo).