Implemente un contrato desde Solidity Browser o geth en un nodo externo (conectado a una cadena de bloques de ethereum privada)

Estoy tratando de implementar un contrato desde el navegador Solidity || geth En mi máquina servidor, dentro del navegador Solidity || geth puedo implementar un contrato. Pero desde mi nodo externo, que está conectado a mi cadena de bloques Ethereum privada; dentro del navegador Solidity || geth No podré implementar un contrato. Se detiene y dice: "Implementando y vinculando bibliotecas requeridas..."

[P] ¿Cómo puedo implementar un contrato desde Solidity Browser || geth dentro de un nodo externo que está conectado a la cadena de bloques privada de ethereum?

En mi máquina cliente, la forma en que estoy conectado a la cadena de bloques Ethereum privada.

sudo ./geth --port 3000 --networkid 23422 --identity node1 --verbosity 3 
--nodiscover --nat none --datadir="/home/avatar/MyEthereumEbloc" 
--rpccorsdomain '*' --rpc --rpcaddr "localhost" 
--rpccorsdomain="*" --rpcport="8545"  --nodiscover --maxpeers=4 
  --bootnodes enode://<enode_id>@<ip>:3000 console

-

> admin.addPeer("enode://<enode_id>@<ip>:3000?discport=0")
true
> net
{
  listening: true,
  peerCount: 1,
  version: "23422",
  getListening: function(callback),
  getPeerCount: function(callback),
  getVersion: function(callback)
}

Cuando hago clic en el botón "crear" en Solidity Browser; en mi consola geth en curso en el cliente => Puedo ver que se crea la transacción. Pero nunca se extrae. Básicamente, la transacción del contrato se atasca dentro de las transacciones pendientes. El par parece estar conectado a una cadena de bloques privada, pero la transacción nunca se realiza.

I1015 19:19:44.002223 eth/api.go:1183] 
Tx(0x2995698a4662ad2cc688471c19b4ce1d8fe0d1536f3548f249dadf7c16431205) 
created: 0x91a81d46ee8844ab9e5dcf38a0aa37dd262fe4dd

ingrese la descripción de la imagen aquí

¿Cuál es el código del contrato? Estás usando una lib, ¿no es así?
Actualicé mi pregunta, no está relacionada con Lib. El mismo contrato se extrae en mi máquina servidor sin tener ningún problema. Tanto el contrato como la biblioteca no se extraen. Solo piénselo como un simple contrato que actualiza un valor de almacenamiento.
Solo para su información, esta pregunta y su respuesta aún podrían ser útiles para otros; Yo lo votaría. Las auto-respuestas están bien. Pero respeto con lo que decidas hacer.
¿Cómo se conectan los dos nodos? ¿Utiliza una dirección IP estática para cada nodo, o cada vez que desea conectarlos, encuentra su dirección IP manualmente y la coloca en admin.addPeer() y la otra línea de comando?

Respuestas (1)

Solución 1: Como puede ver, cuando me conecté a mi Ethereum Blockchain privado, no usé el indicador "--mine". Mi cadena de bloques estaba sincronizada pero el nodo del cliente no estaba realizando ninguna extracción. Entonces, el problema fue que no comencé a minar en mi nodo cliente. Cuando empiezo a minar en mi nodo cliente (miner.start(1) o con el indicador "--mine"), puedo implementar el contrato desde Solidity Browser y también desde geth.

" Empezar a minar

La transacción que ha implementado el contrato debe ser verificada por la red, si estamos ejecutando una cadena privada con un solo nodo, necesitaremos extraer la transacción.

El recibo de la transacción

Esperando hasta que se extraiga la transacción. Una vez que hayamos comenzado a minar (o sepamos que hay mineros en la red) podemos intentar recuperar el recibo de la transacción, lo necesitaremos ya que contiene la dirección de nuestro contrato.

Es posible que la transacción aún no se haya extraído, por lo que al intentar obtener el recibo puede devolver un valor nulo, en este escenario continuaremos intentándolo hasta que obtengamos un resultado no nulo.

Dejar de minar (una vez que hayamos terminado, podemos dejar de minar)" [1]

[1] https://nethereum.readthedocs.io/en/latest/contracts/deploying/

Solución 2: como puede ver, mi nodo se conecta a la red con --nodiscoverbandera, cuando lo eliminé, el problema se resolvió.