Ethereum(以太坊)是一个使开发人员能够建立和发布下一代分布式应用的公共区块链平台。 通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(称为 “以太虚拟机” Ethereum Virtual Machine)来处理点对点合约。
本文从零开始搭建了以太坊的开发环境。
本次的以太坊环境是用 go 语言开发,虚拟机内部运行的是javascript. 可能有人不太理解,举个例子,java 虚拟机本身就是用 c 开发的(windows 平台上),但是运行在虚拟机之上运行的是 java 语言。
安装完 nodejs 后,npm 也可以使用了,建议使用 nodejs 稳定版本,以免发生其他问题
安装完成后使用
node -v
测试是否安装成功
建议:使用可视化版本更方便调试
安装开发环境的区块链节点(方便与 web3.js 进行交互)
npm install -g ganache-cli
注意:ethereumjs-testrpc 已经被废弃,请不要使用
mkdir helloWorld
进入
cd helloWorld
npm init
使用默认值就好(一直回车),当然也而已修改成自己需要的配置
npm install web3 --save
注意:有几率这个版本不稳定,如果后续跑不通请使用如下版本
npm install web3@0.20.0 --save
var Web3 = require('web3');
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider); //如果已经设置了 Provider
} else {
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
console.log("*****当前的Provider Star*****");
console.log(web3.currentProvider); //如果已经设置了Provider,则返回当前的Provider。
console.log("*****End\n");
// 这个方法可以用来检查在使用mist浏览器等情况下已经设置过Provider,避免重复设置的情况。
var coinbase = web3.eth.coinbase; //用于接收挖矿奖励的地址
console.log("节点的挖矿奖励地址:", coinbase);
端口地址是8545
node app.js
*****当前的Provider Star*****
HttpProvider {
host: 'http://localhost:7545',
timeout: 0,
user: undefined,
password: undefined }
*****End
节点的挖矿奖励地址: 0x627306090abab3a6e1400e9345bc60c78a8bef57