Estoy usando la extensión Metamask.io en Google Chrome. Conectó correctamente Metamask.io a la red privada alojada en la instancia de AWS EC2 utilizando la dirección de socket (IP: número de puerto). Basic Contract se implementó en la cadena de bloques utilizando Remix IDE para la programación de solidez. Puedo obtener la información (función getInstructor). Sin embargo, no se puede configurar la nueva información del instructor.
Pasos -
En el nodo blockchain privado de ethereum, traté de encontrar transacciones pendientes y no había ninguna. Como se muestra,
> eth.pendingTransactions
[]
Sin embargo, al intentar esto,
web3.eth.getBlock("pending")
{
difficulty: 25082169,
extraData: "0xd583010701846765746885676f312e39856c696e7578",
gasLimit: 4712388,
gasUsed: 0,
hash: null,
logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
miner: null,
mixHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
nonce: null,
number: 1557557,
parentHash: "0xf84ce5ff7845f399eb698bfc33abeb24a8e459096d7ad9c097de3eb6130a6360",
receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
size: 537,
stateRoot: "0x017184c9d24daab688c39468af064cd3ab748f5adc9c5b1fd3c5bcc2f3a318a0",
timestamp: 1523753000,
totalDifficulty: 0,
transactions: [],
transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
uncles: []
}
Hace unos días pude realizar esta transacción básica, pero ahora no. Incapaz de entender cuál es el problema.
Posibles errores -
De acuerdo con estas discusiones
los nodos mineros y la transacción no se envían , intenté crear otra cuenta personal y dejarla mía (eso falló).
La configuración "habitual" para el desarrollo es no conectar Metamask a su nodo de AWS porque no desea exponer las API a ese nodo. Supongo que estás usando POA, ¿verdad?
Simplemente ejecute un nodo local en su computadora y conecte metamask a localhost.
De forma predeterminada, el nodo solo aceptará conexiones de localhost. Puede cambiar esto para aceptar conexiones de cualquier persona con: --rpcaddr "0.0.0.0".
Tenga en cuenta que cada vez que se desbloquea una clave privada, cualquiera en Internet puede usar esta clave consultando su servidor rpc y enviando transacciones.
Parece que tienes este problema: https://github.com/MetaMask/metamask-extension/issues/1722
Intente configurar chainId
y networkId
con el mismo valor para ayudar a MetaMask a cumplir con EIP-155.
Una guía para usar un nodo personalizado con MetaMask está aquí: https://github.com/MetaMask/faq/blob/master/USERS.md#using-a-local-node
Tuve un problema similar. Básicamente, mi contrato inteligente no tenía "pagadero" en la función donde envía Ethereum. Estás diciendo que todo funciona correctamente, puedes buscar, metamask se abre pero no envía Ethereum. Intente agregar "pagadero" y avíseme si eso funcionó para que sepa analizar más a fondo su problema.
ismael
mine.start(1)
o algo similar. De su bloque pendiente tiene el número 1557557, que es bastante alto para una red de prueba privada, ¿quéeth.blockNumber
devuelve? ¿Estás seguro de que te estás conectando a la red correcta?Chaitanya Bapat
> eth.blockNumber
1558456