本地搭建以太坊(Ethereum)详细教程

本篇教程旨在自己的电脑上安装配置以太坊开发环境,搭建以太坊私有链,编写一个简单的智能合约,通过以太坊JSON RPC和JavaScript API编程接口将其部署到所创建的以太坊私有链,并可调用合约获得正确的合约执行结果。

一、以太坊开发环境搭建

1.1 Mac OS X系统安装go环境
官网链接:https://golang.org/dl/
官网下载最新的稳定版本:go1.11.2.darwin-amd64.pkg,直接双击完成安装,安装目录在/usr/local/go/下。
配置环境变量:
vim ~/.bash_profile
export PATH=$PATH:/usr/local/go/bin
查看是否配置成功
go version
go version go1.11.2 darwin/amd64

1.2 安装Node.js、Npm
官网链接:https://nodejs.org/en/download/
查看是否安装成功
node -version或node –v
NPM是随同NodeJS一起安装的包管理工具。
npm -version或npm -v

1.3 以太坊Ethereum安装
apt install ethereum
查看以太坊是否安装成功
geth version

1.4 solc编辑器安装
npm install -g solc
查看solc支持的功能
solcjs --help
注意:solcjs命令与Solidity编译器提供的solc包并不兼容,因此不能通过eth.compile.solidity() RPC的方式与以太坊客户端结合使用。

二、以太坊集成开发环境

创建账户

geth account new

输入两遍密码后,生成账户地址。
创建账户
以太坊账户地址 528301230cb94d1649534b13e991be243780d3bd

查看账户

geth account list

查看账户
初始化创世块文件

geth --datadir "./" init genesis.json

初始化创世块文件
注意:"./"表示以太坊的路径。

运行以太坊私有链,首先要定义自己的创世区块,创世区块信息写在一个 JSON 格式的配置文件中,即genesis.json。

其中,chainID指定了独立的区块链网络ID。网络ID在连接到其他节点的时候会用到,以太坊公网的网络ID是1,为了不与公有链网络冲突,运行私有链节点的时候要指定自己的网络ID。不同ID网络的节点无法相互连接。配置文件还对当前挖矿难度difficulty、区块Gas消耗限制gasLimit等参数进行了设置。

启动以太坊

geth --datadir "./" console

启动以太坊
启动挖矿

miner.start()

启动挖矿
其中start可以设置参数,表示挖矿使用的线程数。第一次启动挖矿会先生成挖矿所需的DAG文件,等进度达到100%后,就会开始挖矿。

停止挖矿

miner.stop()


挖矿所得的奖励会进入矿工的账户,这个账户叫做coinbase,默认情况下coinbase是本地账户中的第一个账户,可以通过miner.setEtherbase()将其他账户设置成coinbase。另外注意第一次停止挖矿需要一段时间,因为节点需要为工作证明算法生成1GB数据集。

三、以太坊编程接口

3.1 通过json rpc编译合约

curl --data '{"jsonrpc":"2.0","method": "eth_compileSolidity", "params": ["contract Multiply7 {event Print(uint);function multiply(uint input) returns (uint) {Print(input * 7);return in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值