Installer ethereum et geth sur votre machine via apt-get ou autre en fonction de votre version de ubuntu.
Créer un fichier genesis.json : https://medium.com/taipei-ethereum-meetup/beginners-guide-to-ethereum-3-explain-the-genesis-file-and-use-it-to-customize-your-blockchain-552eb6265145
Dans le même directory que genesis.json, lancer la commande :
geth init genesis.json --datadir bc
Vous avez créé votre blockchain ethereum.
Lancer la commande :
geth --datadir bc --rpcport 8545 --rpc console
Dans la console geth entrer la commande:
personal.newAccount(‘000000’)
Vous obtenez quelque chose comme : “0x5423523…” ; Garder cette adresse*
miner.setEtherbase(eth.accounts[0])
personal.unlockAccount(eth.accounts[0] , '000000', 0)
miner.start()
Attendez un moment le temps que ça mine, puis
miner.stop()
Ouvrez un autre terminal et aller sur le même directory.
Installer truffle puis lancer les commandes :
mkdir tr_
cd tr_
truffle init
truffle s’initialise… puis modifier le fichier truffle.js par ce qui suit, sans oublier de remplacer <ADDRESS> par l’adresse obtenue avant plus haut* :
module.exports = {
rpc: {
host:"localhost",
port:8545
},
networks: {
development: {
host: "localhost", //our network is running on localhost
port: 8545, // port where your blockchain is running
network_id: "*",
from: "<ADDRESS>", // use the account-id generated during the setup process
gas: 5000000
}
}
};
Ajouter votre smartcontract dans le dossier “contracts”
Appelons le myContract.sol, il sera comme suit :
pragma solidity ^0.4.15;// la fonction constructor met la string "42" dans message, nous
// irons chercher la valeur de message pour afficher "42" lors du
// testcontract myContract {
string public message;
function myContract() {
message = “42”;
}
}
Dans le dossier “migrations” créer un fichier 2_deploy_contracts.js contenant :
var myContract = artifacts.require("./myContract.sol");
module.exports = function(deployer) {
deployer.deploy(myContract);
};
Retour au dossier tr_
truffle migrate
La migration commence… retournez sur le terminal avec la console geth, lancer le mineur le temps de déployer le contrat puis stoppez le, comme suit.
miner.start()// quelques secondes...miner.stop()
Votre smartcontract est deployé.
Pour tester :
retour dans le dossier tr_ avec la console geth toujours allumée, lancez la console truffle:
truffle console
Elle se connecte automatiquement a votre blockchain.
Puis lancez les commandes :
var dapp;
myContract.deployed().then((i) => { dapp = i; })
dapp.message.call()
On obtient “42”.