以太坊详细入门教程

1.以太坊的安装、私有链创世区块搭建、私有链节点的加入

安装以太坊:
$	apt-get	install	software-properties-common
$	add-apt-repository	-y	ppa:ethereum/ethereum 
$	apt-get	update
$	apt-get	install	ethereum

若无法安装,一般是网络问题,本文的解决方案是使用VPN:Baccloud

私有链创世区块的搭建:

初始化创世区块:
在这里插入图片描述
进入私有链的console,使用端口“30300”:

1541248734967

私有链节点的加入:

新建节点 node2,使用默认端口 “30303”

1541247638868

进入node2 的console:

1541247681239

查看node2的enode

1541247938998

在私有链的控制台添加node2

1541248206039

查看节点列表,从中可以看到私有链中增加了另一个节点的Address

1541248405217

2.对getBlock中所得区块的各个字段进行解释

获取Block 4的信息:

1541249337618

difficulty:挖到该区块的难度系数

extraData:当前区块的extra data

gasLimit: gas使用量上限

gasUsed: gas的实际使用量

hash: 区块的哈希值

logsBloom:布隆过滤器的日志,ps布隆过滤器是一种基于Hash的高效查找结构,能快速回答“某个元素是否在一个集合内”的问题

miner: 获得该区块奖励的矿工

mixHash:一个Hash值,当与nonce组合时,证明此区块已经执行了足够的计算

nonce: 随机数,用于挖矿

number:区块号

parentHash: 父区块的哈希值

receiptsRoot: 包含此区块所有交易的merkle树的根节点Hash值

sha3Uncles: 叔区块的哈希值

size: 区块的大小

stateRoot: 方便节点间状态的互相验证,保证在交易的每个区块中所有节点的状态是一致的

timestamp: 区块打包时的时间戳

totalDifficulty:创世区块到当前区块的所有区块难度总和

transactions: 交易信息

transactionsRoot: 区块交易前缀树的根

uncles:数组,叔块的哈希值数组

3.对日志输出进行解释

将控制台信息写入output.log中
1541253116109

使用 tail -f output.log 实时查看日志信息

1541253314076

数据分析:

挖矿:

  1. 找到重要的链,末尾区块号为58
  2. 进行挖矿,当前区块号为65
  3. 成功挖到66号区块,进行广播
  4. 66号区块打包成功

1541253689845

exit 步骤:

  1. 关闭 网络通信
  2. 将cache状态写入磁盘
  3. 停止区块链管理
  4. 停止以太坊协议
  5. 交易池停止接收交易请求
  6. 关闭数据库

1541255646414

4.编写简单的智能合约,在remix下进行调试,并部署在链上进行调用

remix 安装:
搭建智能合约开发环境Remix IDE及使用

编写一个wallet 程序,可以通过该程序收入,花费和查看wallet里面的余额

1541261926327

无编译错误后进行部署:

1541262006793

使用Web3 provider 连接本地私有链

出现连接不成功的区块,解决方案是 在命令行添加 参数 --rpccorsdomain "*"
geth --datadir data/ --port "30300" --rpc --rpcport 8545 --rpccorsdomain "*" console
此处参考: Remix无法连接私有链问题解决方案

点击Deploy 键进行部署:

1541262241111

部署不成功,需要对账户解锁

1541260895092

解锁账户

1541260852685

部署交易并启动挖矿,使得交易被处理

若不进行挖矿,则会卡在creation of wallet pending 这个步骤

1541261151285

1541261733583

通过transaction hash 获得交易信息

1541261706440

调用智能合约:
在下图的红框中打开函数调用栏
在这里插入图片描述

调用income(10),收入10,调用 get() , 显示如下:

1541300017112

调用spend(5),支出5,调用get(),显示如下:

1541300156443

5.对交易字段进行解释

1541300225043

status: 当前交易的状态

transaction hash:交易哈希值,可通过getTransaction 获取交易信息

from :交易发起方地址

to:交易接收方地址,即接收服务费,转账等

gas:交易估计需要消耗的gas

transaction cost:交易实际消耗的gas

hash:交易哈希值

input:输入值的哈希

decoded input:输入值的哈希解码

decoded output:输出

logs:日志

values:转账金额

叔块的介绍

以太坊的工作原理
搭建智能合约开发环境Remix IDE及使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值