diff --git a/contract/README.md b/contract/README.md index 0d1b76337751c8a5ed1548628104bc3010732224..33eeaf915e47911c020099f56b2d954ae52eed3e 100644 --- a/contract/README.md +++ b/contract/README.md @@ -1,16 +1,44 @@ # Deployando a BFA Para hacer esto tuve que utilizar truffle-hdwallet-provider. Esto fue debido a -la imposibilidad de unlockear la account en geth directamente por un cambio reciente. +la imposibilidad de unlockear la account en geth directamente por un cambio reciente: -Para elegir la account que se quiere utilizar hay que pasar la pkey de la account en la variable -de entorno ```GETH_ACCOUNT_PKEY```. +```bash +npm install truffle-hdwallet-provider +``` + +Luego, hay que obtener la clave privada de la cuenta Ethereum y ponerla en la variable de entorno ```GETH_ACCOUNT_PKEY``` antes de invocar el ```truffle migrate``` a la red. + +Para obtener la clave privada hay que seguir las instrucciones en https://ethereum.stackexchange.com/questions/12830/how-to-get-private-key-from-account-address-and-password + +Instalar **keythereum** en _otro_ directorio (porque si no se pelea con directorios que ya usa truffle): + +```bash +mkdir /tmp/keythereum +cd /tmp/keythereum +npm install keythereum +``` + +Después, invocar a la consola (con ```attach.sh```) y ejecutar los siguientes pasos (cambiando _miclave_ por la clave de la cuenta -o el string vacÃo si la cuenta no tiene clave): + +```bash +var keythereum = require("keythereum"); +var datadir = "/home/bfa/bfa/network/node"; // si es la red de testing usar "/home/bfa/bfa/test2network/node" +var address= "0xc8096d713000002c77e4eb62f0000ead5f105a7e"; +const password = "miclave"; + +var keyObject = keythereum.importFromFile(address, datadir); +var privateKey = keythereum.recover(password, keyObject); +console.log(privateKey.toString('hex')); +``` +el ```console.log()``` va a imprimir una clave con este aspecto: **bab415bada55bab415bada55bab415bada55bab415bada55bab415bada55bab4**. + +Eso es lo que hay que poner en la variable de entorno ```GETH_ACCOUNT_PKEY```. La invocación se hace asà **esto deployea a bfa** ```bash -GETH_ACCOUNT_PKEY=840e5ddddda6037390329b2d0b65f422f2555555555b6de292cc574fff212345 truffle migrate --network bfa +GETH_ACCOUNT_PKEY=bab415bada55bab415bada55bab415bada55bab415bada55bab415bada55bab4 truffle migrate --network bfa ``` -Para obtener la pkey desde el keystore de geth seguà las siguiente instrucciones: https://ethereum.stackexchange.com/questions/12830/how-to-get-private-key-from-account-address-and-password +(Si se quiere deployar a la red de testing utilizar ```--network bfatest2```) -Para hacerlo desde el REPL esto ayudó: https://stackoverflow.com/questions/18260605/how-to-require-node-module-in-node-repl-without-installing-globally