Estoy tratando de migrar el contrato en una red de cadena de bloques creada con la cadena de bloques del consorcio de Azure Ethereum, pero cuando ejecuto el comando Truffle, migre, se atasca en
PS D:\sl\BCSLAC\bcdemo\sol> truffle migrate --network test
Using network 'test'.
Running migration: 1_initial_migration.js
Deploying Migrations...
Este mensaje persiste durante mucho tiempo y no sucede nada después de esto. ¿Alguien puede tener idea de cuál es el problema?
Y lo interesante es que tengo una configuración de red de cadena de bloques más en Azure (que estoy usando anteriormente). Si trato de implementarla en esa red, funciona bien, pero no en la nueva.
Busqué este problema y encontré una solución aquí que dice eliminar el archivo DAG. Como estoy usando Windows 7, la ubicación del archivo dag debe ser
(INICIO)/Appdata/Local/Ethash/completo......
pero no puedo ver ninguna carpeta llamada Ethash en mi carpeta AppData/Local
Una cosa que puede causar este comportamiento con Parity (no estoy seguro de si eso es lo que está ejecutando el servicio de Azure o no) es que si la cuenta con la que quiere implementar está bloqueada, como está de forma predeterminada, espera que tome algún otro paso. para aprobar la transacción.
Parity intenta hacer esto ejecutando una interfaz de usuario web en algún otro puerto, mostrando cada solicitud de transacción en una pantalla web y esperando que haga clic en ella. Desafortunadamente, truffle no sabe nada de esto y no le dice nada sobre la existencia de esta pantalla web o la solicitud que se muestra en ella.
Para evitar que haga esto, desbloquee la cuenta de envío cuando inicie el nodo de paridad. Por ejemplo, cuando se ejecuta con las cuentas de ejemplo utilizadas en el tutorial de Parity PoA , coloque las contraseñas en un archivo llamado user.pwds
y ejecute parity con:
parity --config node0.toml --unlock 0x004ec07d2329997267ec62b4166639513386f32e,0x00bd138abd70e2f00903268f3db08f2d25677c9e --password user.pwds
El archivo de contraseñas contiene las contraseñas de las cuentas, una por línea, por ejemplo:
node0
user
personal.unlockAccount("accountHash","password",0)
Me enfrenté al mismo problema. Revisé todo, desde mineros activos hasta cuentas bloqueadas. Al final, reiniciar el nodo de transacción desde Azure Portal funcionó para mí.
Los problemas que enfrenté fueron una combinación de muchos:
--no-ui
mientras ejecutaba paridad.Para superar estos problemas, utilicé una cadena privada con la siguiente configuración:
Las especificaciones de la cadena se tomaron prestadas de private-chain y se almacenaron en un archivo llamado demo-spec.json
:
{
"name": "DevelopmentChain",
"engine": {
"instantSeal": { "params": {} }
},
"params": {
"accountStartNonce": "0x0",
"maximumExtraDataSize": "0x20",
"minGasLimit": "0x1388",
"networkID" : "0x11"
},
"genesis": {
"seal": {
"generic": "0x0"
},
"difficulty": "0x20000",
"author": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x",
"gasLimit": "0x5B8D80"
},
"accounts": {
"0000000000000000000000000000000000000001": { "balance": "1", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } },
"0000000000000000000000000000000000000002": { "balance": "1", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } },
"0000000000000000000000000000000000000003": { "balance": "1", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } },
"0000000000000000000000000000000000000004": { "balance": "1", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } },
"0x00a329c0648769a73afac7f9381e08fb43dbea72": { "balance": "1606938044258990275541962092341162602522202993782792835301376" },
"0x004ec07d2329997267ec62b4166639513386f32e": {"balance": "9999999999999999999999999999999999999999999999999999999999999999999999"},
"0x00bd138abd70e2f00903268f3db08f2d25677c9e": {"balance":"999999999999999999999999999999999999999999999999999999999999999999999999"}
}
}
El siguiente paso fue crear node0.toml
el archivo:
[parity]
chain = "demo-spec.json"
base_path = "./tmp/parity0"
[network]
port = 30300
[rpc]
port = 8540
apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces", "rpc", "parity_accounts"]
[websockets]
port = 8450
[account]
password = ["node.pwds"]
[mining]
reseal_min_period = 0
min_gas_price = 0
No inicie el nodo todavía, aún no hemos guardado la contraseña. Guarde el siguiente contenido en node.pwds
el archivo:
node0
user
Ahora inicie el nodo usando
parity --config node0.toml
Las cuentas existen en la cadena, pero no se guardan en el nodo que estamos ejecutando. Antes de que podamos hacer que nuestras cuentas funcionen, debemos crearlas en nuestro nodo. Lo hice usando RPC:
curl --data '{"jsonrpc":"2.0","method":"parity_newAccountFromPhrase","params":["node0", "node0"],"id":0}' -H "Content-Type: application/json" -X POST localhost:8540
curl --data '{"jsonrpc":"2.0","method":"parity_newAccountFromPhrase","params":["user", "user"],"id":0}' -H "Content-Type: application/json" -X POST localhost:8540
Ahora todo está listo y podemos iniciar el nodo de paridad desbloqueando la cuenta:
parity --config node0.toml --no-ui --unlock 0x004ec07d2329997267ec62b4166639513386f32e,0x00bd138abd70e2f00903268f3db08f2d25677c9e --password node.pwds
--no-ui
. La interfaz de usuario se puede habilitar modificando node0.toml
y cambiando el comando para ejecutar la paridad excluyendo --no-ui
.
triplespeeder
SwapnilKumbhar