搭建私有链及部署智能合约

搭建私有链及部署智能合约

1、搭建以太坊私有链

1.1 安装以太坊客户端

假设你使用的ubuntu, 那么用如下方式安装go ethereum:php

sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum

1.2 建立genesis.json

{
  "config": {
    "chainId": 33,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  },
  "nonce": "0x0000000000000033",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x8000000",
  "difficulty": "0x100",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {}
}

1.3 搭建私有链

建立创世区块git

mkdir mycoin
geth --datadir mycoin init genesis.json

链接私有网github

geth --datadir mycoin --networkid 20 --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcapi db,net,web3,admin,debug,miner,eth,personal console
  • --datadir 指定目录
  • --networkid 指定网络ID
  • --rpc 开启rpc
  • --rpcaddr RPC监听地址
  • --rpccorsdomain 容许跨域访问
  • --rpcapi 开启的API列表
  • console 开启控制台

1.4 建立一个用户并挖矿

进入到控制台以后, 建立一个新用户, 密码设置为"password"web

personal.newAccount('password')

启动挖矿, 第一次挖矿准备时间比较长,时间长短取决于机器的性能shell

miner.start()

当你看到以下图信息时, 恭喜你,挖矿成功:
此处输入图片的描述json

挖了一会,就可使用如下命令中止了ubuntu

miner.stop()

查看用户余额api

eth.getBalance(eth.coinbase)

2、布署智能合约

2.1 使用remix ide编译智能合约

remix ide 地址跨域

本课程并不探讨关于智能合约开发的话题. 智能合约可使用开源的,地址以下:网络

智能合约地址

须要整理一下, 导入到 remix ide.

导入成功后,进行编译。若是有黄色背景的警告,能够忽略。若是有红色背景的错误,能够更改智能合约版本从新编译,步骤为: "Settings->Solidity version", 在下拉列表选择另外一个版本,IDE就会自动从新编译。

编译成功后,根据如下图片所示步骤进行操做:

此处输入图片的描述

先选择"StandardToken"(这里是否是StandardToken取决于你的合约代码), 再点击Details. 复制WEB3DEPLOY

此处输入图片的描述

复制后,粘贴到文本编辑器,对一些变量进行赋值

var name = "China Test Coin"; /* 代币全称 */
var symbol = "CTC"; /* 代币简称 */
var decimals = 18; /* 默认精度 */
var totalSupply = 100000000; /* 发行代币总额 */
var _owner = "0x...."; /* 代币拥有者地址, 若是你使用上面开源的合约地址,没有此项请忽略 */

...

编辑完成后,保存代码。

2.2 发布智能合约

转到geth的控制台上,

解锁用户, 这一步是必须的

personal.unlockAccount(eth.coinbase)

布署合约

把上面保存的代码复制粘贴到控制台上,回车,若是成功则会显示合约地址, 这里的合约地址必定要保存起来, 后面会用到. 若是失败,通常调整gas大小,再发布就能够了.

合约布署后,交易尚未写到区块上,启动挖矿,建立区块

miner.start()

当你看到transaction=之类的信息, 表示交易已经写到区块上.

至此,私有链的搭建和智能合约的布署就完成了. 下一步咱们将使用php与ethereum客户端进行交互. 并学习如何调用合约中的方法.

相关文章
相关标签/搜索