No puedo interactuar con el contrato usando Dapp implementado en Quorum blockchain (usando metamask). Estoy siguiendo " https://truffleframework.com/tutorials/building-dapps-for-quorum-private-enterprise-blockchains ". Configuré con éxito la cadena de bloques Quorum 7node, luego creé un conjunto simple y obtuve Dapp para el mismo contrato que figura en el enlace anterior. Logré importar la base de monedas de cada nodo a metamask. Creé 3 RPC personalizados http://127.0.0.1:22000 , 22003 y 22006 e importé la respectiva base de monedas a metamask (siguiendo " Cómo importar una cuenta desde la consola geth a metamask (blockchain privado) "). He creado un app.js simple similar al tutorial de la tienda de mascotas de trufas,
He implementado un contrato con la etiqueta privateFor en la migración y para establecer la misma función que se muestra en el ejemplo de 7 nodos de quórum de trufa.
Pero cuando trato de cambiar el valor de los datos de almacenamiento de dapp, no puedo cambiarlo (refleja el mismo valor constante). mientras que desde el nodo geth puedo cambiar el valor de los datos de almacenamiento. Incluso desde sampletx.js (usando truffle exec sampletx.js) puedo cambiar el valor de los datos de almacenamiento.
Sí, puedo ayudarte aquí Los pasos son
Obtendrá como vagrant@ubuntu-xenial:~$
Después de esto, vaya a cd quroum-example/7nodes/
3.en el mismo cmd $./raft-start.sh 4.Ejecute este comando vagrant@ubuntu-xenial:~/quorum-examples/7nodes$ geth adjuntar qdata/dd1/geth
Abra una nueva terminal y acceda al directorio de quroum-example y escriba vagabundo ssh
5.abra una nueva instancia de geth aquí usando los 3,4 pasos anteriores, agregue la instancia de geth, pero esta vez, adjunte qdata/dd4/geth
6. Este es su entorno de compilación para dos instancias de geth.
7. En el tutorial " https://truffleframework.com/tutorials/building-dapps-for-quorum-private-enterprise-blockchains " tendrá un directorio como
en la terminal de geth adjunte qdata/dd1/geth use estos comandos
=> var bytecode = "your smart Contract byte code"
=>var simpleContract = eth.contract([{ "constant": true,"inputs": [],"name": "storedData","outputs": [{"name": "","type": "uint256"}],"payable": false,"stateMutability": "view","type": "function"},{"inputs": [{"name": "initVal1","type": "uint256"}],"payable": false,"stateMutability": "nonpayable","type": "constructor"},{"constant": false,"inputs": [{"name": "x","type": "uint256"}],"name": "set","outputs": [],"payable": false,"stateMutability": "nonpayable","type": "function"},{"constant": true,"inputs": [],"name": "get","outputs": [{"name": "retVal","type": "uint256"}],"payable": false,"stateMutability": "view","type": "function"}])
> simpleContract.new(20, {from:eth.accounts[0], data: bytecode, gas: 0x47b760,privateFor: ["ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc="]})
Y luego verifíquelo con var test2 = adjuntar capturas de pantalla
usuario45383
usuario45383