Implementación e interacción del contrato con la cadena de bloques del consorcio de Azure con su recibo de transacción que no regresa de la cadena de bloques

Estoy usando Web3j para implementar e interactuar con un contrato en la cadena de bloques del consorcio de Azure.

Conexión al punto final RPC de la cadena de bloques del consorcio de Azure

Web3j web3 = Web3j.build(new HttpService("http://***.cloudapp.azure.com:8545"));

Desbloqueo de mi cuenta desde el archivo de mi billetera

Credentials credentials = WalletUtils.loadCredentials("mypassword", "path/to/mywallet");

Implementación de contrato desde el contenedor de contrato inteligente web3j

 Future<MySmartContract> contract = MySmartContract.deploy(
   web3,
   credentials,
   BigInteger.valueOf(700000),
   BigInteger.valueOf(700000),
   BigInteger.valueOf(0),
   new Uint256(10000L));

Imprimir la dirección del contrato

System.out.println(contract.get().getContractAddress());

Debajo del capó, Web3j llamaría

 "{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xa8b688bc982252bf514adf9ff0cf6eef73d6b5212fb69a7b2f80b281faefecc8"],"id":1}"

pero el resultado siempre sería"{"jsonrpc":"2.0","id":1,"result":null}[\n]"

Esencialmente, supongo que la transacción se envía a la cadena de bloques, pero la cadena de bloques no extrae esta transacción. He probado esto en Ethereum testnet y funciona. Me pregunto si existen herramientas de depuración o formas de monitorear la cadena de bloques del consorcio azul y las posibles soluciones a este problema.

Respuestas (2)

Resulta que el precio de la gasolina era demasiado bajo (más grande que el número entero más grande). Luego comienza a extraer un contrato vacío, que resultó ser un límite de gas demasiado bajo.

¿Podría aceptar esta respuesta, de lo contrario, la comunidad la repetirá una y otra vez?

¡Qué bueno que lograste encontrar una solución!

Geth ofrece prueba de autoridad ahora, lo que permite crear cadenas privadas sin prueba de trabajo. No es algo de mucho valor, pero creo que vale la pena mencionarlo. Lo elegimos sobre Azure para nuestra prueba de concepto en ethereum.