¿Cómo saben los otros nodos qué nodo en particular tiene la cuenta utilizada en la transacción?

Un breve sobre mi configuración. Estoy usando una red Ethereum privada con 3 nodos. He hecho todos los nodos peersuno del otro usando:admin.addPeer("enode:1234abcd..")

Cuando se lleva a cabo la minería, todos los nodos están sincronizados.

También noté que las cuentas creadas en un nodo son locales para el mismo nodo. Entonces, las cuentas creadas en un nodo están disponibles en el mismo nodo y no con ninguno de sus pares.

Sin embargo, puedo procesar transacciones entre cuentas de diferentes nodos usando.eth.sendTransaction({from:sender, to:receiver, value: amount})

Ahora mis preguntas son:

  • ¿Cómo sabe la red a qué nodo consultar la presencia de la cuenta?
  • ¿Se comprueban todos los nodos para detectar la presencia de cuentas de "remitente" y "receptor"?
  • ¿Aumenta el tiempo de transacción si se agregan más pares a la red?
  • ¿Afectará la seguridad de mi red si transporte los archivos de claves de las cuentas creadas en un nodo a todos los demás nodos?

Respuestas (1)

  • Las transacciones están firmadas por una clave privada, que crea una firma. Dados los datos de la transacción y la firma, el nodo puede obtener la dirección pública del firmante y puede verificar la transacción. El "remitente" es el firmante, que es la clave privada. A la red no le importa quién está en "posesión" de la cuenta. La cadena de bloques es un libro mayor que asigna direcciones públicas a los valores de transacción procesados ​​y no importa de dónde provino la transacción. Simplemente comprueba que el firmante es legítimo comparando el firmante del firmante con el deldireccion publica. Por supuesto, estoy simplificando mucho de esto, pero el punto es que a la red no le importa qué nodo tiene la clave privada. Puede firmar la transacción desde un nodo, fuera de línea o desde Plutón, y luego entregar la transacción firmada a un nodo diferente para transmitirla, y funcionará.
  • No, no se comprueba la presencia de la cuenta en los nodos.
  • No, el tiempo de transacción se basa en la dificultad del bloque, que es el tiempo que tarda un minero o un grupo de mineros en extraer un bloque, que se estima en alrededor de 15 segundos. Sin embargo, la red puede congestionarse si hay muchas más transacciones de las que puede manejar y con eso quiero decir que hay limitaciones en la cantidad de transacciones que pueden caber en un bloque, por lo que si hay demasiadas transacciones, muchas transacciones permanecen en un grupo (llamado mempool) de transacciones que esperan ser recogidas y extraídas (incluidas en un bloque).
  • Siempre que los archivos del almacén de claves estén encriptados y transferidos a través de TLS, es seguro transportarlos.