No se puede interactuar con DApp implementada en quórum

ingrese la descripción de la imagen aquí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,

archivo app.jsingrese la descripción de la imagen aquí

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.

Respuestas (1)

Sí, puedo ayudarte aquí Los pasos son

  1. Vagrant up (solo una vez)
  2. Vagrant ssh (panel de un cmd)

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 comoingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

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 pantallaingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Vuelva a hacer algo en el contrato implementado y establezca el valor de x nuevamente, o haga algo, elimine "privado para" y déjelo vacío aquí. Entonces verifique que funcione
en realidad, no está utilizando la dirección de contacto, generalmente si necesito cambiar los valores, uso la dirección del contrato para llamar al contrato inteligente abi. Le pedí que lo quitara porque se ejecutará para todos los pares de la red.