Despliegue de web ÐApp con Quorum+Angular+Python+Flask en un VPS con Ubuntu 16.04 [1.3]
Despliegue de web ÐApp con Quorum+Angular+Python+Flask en un VPS con Ubuntu 16.04 [1] [Quorum] [2] [ Solidity] [3] [ Python]
Otra de las pruebas que se puede realizar es la de envío de fondos de una cuenta a otra estando las cuentas en nodos distintos.
osboxes@osboxes:~/Desktop/giveliback$ geth attach ipc:/home/osboxes/Desktop/giveliback/qdata/node1/geth.ipc
Welcome to the Geth JavaScript console!
instance: Geth/v1.7.2-stable-df4267a2/linux-amd64/go1.10
coinbase: 0x3b6927fe4a4a4d44c3445292d375542cf299661c
at block: 5 (Sat, 29 Sep 48500222153 09:51:11 CET)
datadir: /home/osboxes/Desktop/giveliback/qdata/node1
modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 raft:1.0 rpc:1.0 txpool:1.0 web3:1.0
> web3.fromWei(eth.getBalance(eth.accounts[0]),"ether")
1000000000
> eth.sendTransaction({from:eth.accounts[0], to: "0x513f15ec9fc190cbc2ac25c6d6acdb58253f80d7", value: web3.toWei(100000,"ether")})
"0x7e5b617a1628e2a9b0f5dcb19b8e828d6ce7f7e4ef31e507f7ef5a648bba1910"
> eth.getTransaction("0x7e5b617a1628e2a9b0f5dcb19b8e828d6ce7f7e4ef31e507f7ef5a648bba1910")
{
blockHash: "0x7fefc51f212466992159718149732a545cb7546b1b234737583842e6eb981789",
blockNumber: 2,
from: "0x3b6927fe4a4a4d44c3445292d375542cf299661c",
gas: 90000,
gasPrice: 0,
hash: "0x7e5b617a1628e2a9b0f5dcb19b8e828d6ce7f7e4ef31e507f7ef5a648bba1910",
input: "0x",
nonce: 0,
r: "0xde03cc9388eaa5121ff370bc79442ca932c64e4e24f355e47374b74a61e12ecc",
s: "0x3734266e807bc84e99ec89a8fe9338c5620b5c2940e2839a2021d5beca311ada",
to: "0x513f15ec9fc190cbc2ac25c6d6acdb58253f80d7",
transactionIndex: 0,
v: "0x1b",
value: 1e+23
}
> web3.fromWei(eth.getBalance(eth.accounts[0]),"ether")
999900000
Desde el nodo 2 se observa que ha aumentado el saldo de la cuenta.
osboxes@osboxes:~/Desktop/giveliback$ geth attach ipc:/home/osboxes/Desktop/giveliback/qdata/node2/geth.ipc
Welcome to the Geth JavaScript console!
instance: Geth/v1.7.2-stable-df4267a2/linux-amd64/go1.10
coinbase: 0x513f15ec9fc190cbc2ac25c6d6acdb58253f80d7
at block: 7 (Sun, 02 Sep 48500395455 15:28:15 CET)
datadir: /home/osboxes/Desktop/giveliback/qdata/node2
modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 raft:1.0 rpc:1.0 txpool:1.0 web3:1.0
> web3.fromWei(eth.getBalance(eth.accounts[0]),"ether")
1000100000
>
Aunque en este caso no se precisa, al disponer de una constelación se pueden probar de enviar transacciones privadas y contratos con partes privadas usando la misma para su encriptación. Al no estar disponible el módulo de quorum en la versión 2, en caso de realizar una transacción en la versión 1 que sólo fuera visible por un nodo se incluye el parámetro privateFor con un array con los valores de la claves públicas del nodos a los que se les permite visibilidad. Las claves públicas se encuentran en node.pub.
osboxes@osboxes:~/Desktop/giveliback$ head qdata/node2/node.pub
v2IxD7YLAaLw+RrA++G3JB82KQp5cQJVYEbyrJKpjQM=
osboxes@osboxes:~/Desktop/giveliback$
Ejecutando una prueba desde el nodo 1 y que fuera visible por el nodo 2.
eth.sendTransaction({from:eth.accounts[0], privateFor:["v2IxD7YLAaLw+RrA++G3JB82KQp5cQJVYEbyrJKpjQM="]})
La red de dos nodos, pues, está disponible para transacciones, despliegues de contratos e interacción. El siguiente paso es la definición de las funciones que la ÐApp tendrá por medio de smart contracts en Solidity.
Publicado del blog de ibón: https://ibón.es/2018/07/06/despliegue-de-web-dapp-con-quorumangularpythonflask-en-un-vps-con-ubuntu-16-04/