区块链中以太坊的初步研究

imtoken官网地址 admin 2024-07-30 11:52 41 0

imToken 是一款全球领先的区块链数字资产管理工具[ZB],帮助你安全管理BTC, ETH, ATOM, EOS, TRX, CKB, BCH, LTC, DOT, KSM, FIL, XTZ 资产,同时支持去中心化币币兑换功能 ...

这几年区块链技术非常火爆,我也看过一些资料,但大多都是理论知识,到最后还是一头雾水以太坊和比特币区块链钱包,区块链技术到底是什么,能干什么?只知道它的代表项目是比特币,但它的运行原理到底是什么?带着这些疑惑,我对区块链中的以太坊项目有了初步的了解。

比特币钱包和以太坊钱包

以太坊

区块链比特币以太坊

看完这些理论知识,你可能还是会感到很困惑,但首先我们要明确的是,不管是比特币还是以太坊等区块链项目,中心思想都是去中心化的。

点对点模型:

点对点模型

传统集中式模型:

中心化模型

接下来我们来搭建一条以太坊私链,并进一步了解它的工作原理。

进入go--1.8.11目录,执行make命令开始编译。

注意:版本必须和以太坊原代码版本对应,不然会提示编译版本过低

目前网上很多例子都是用go--1.4.12的,但如果使用高版本的go,编译

该过程会产生“make: *[geth] Error 1”的错误。

编译完成如下:

这里写图片描述

编译成功后,在go--1.8.11目录下会出现一个名为build/bin的子目录,并且在这个子目录中会出现一个名为geth的可执行文件。

这样我们的以太坊安装就完成了

4)准备创世区块文件

创建一个目录和一个 .json 文件,内容如下:

“随机数”:“”,

":"",

"": "",

“分配”:{},

":"",

"": "0x00",

":"",

"": "",

“”:””

如图所示:

这里写图片描述

5)创世区块初始化

进入go--1.8.11/build/bin,执行以下命令,完成创世块的创建

./geth – “/app/yum/lw/chain” 初始化 .json

自定义相应目录

执行完成后会出现如下语句:写入块和/或链规则集:26

注意:如果出现类似错误:Fatal: file: json: hex of odd into Go field . of type

这是因为我们没有定义初始账户并删除了创世区块的内容。

6)以太坊发布

./geth –rpc – “*” – “/app/yum/lw/chain” –port “30303” – “db,eth,net,web3” –

启动:

这里写图片描述

如果出现“to the Geth!”这句话,并且自动输入geth命令行,则表示以太坊私链安装成功。

[]

意思是目前没有账户,我们使用.()命令创建一个账户,输入两次密码,生成一个默认账户。

这里写图片描述

2)挖矿

第一步创建的第一个账户是默认账户,这里是b6,

我们使用web3.(eth.(eth.),“ether”)来查询这个默认账户的余额:

web3.(eth.(eth.),“以太”)

当前默认账户余额为0imToken下载,使用miner.start(1)命令开始挖矿:

矿工启动(1)

INFO [06-18|23:33:40] 新工作 =1 txs=0 =0 =1.211ms

INFO [06-18|23:33:42] 纪元中的 DAG=0 =0 =827.896ms

INFO [06-18|23:33:43] 纪元中的 DAG=0 =1 =1.649s

INFO [06-18|23:33:43] 纪元中的 DAG=0 =2 =2.524s

INFO [06-18|23:33:44] 纪元中的 DAG=0 =3 =3.353s

当出现“Mined block”字样时,代表挖矿成功,此时我们可以用miner.stop()命令来停止挖矿。

再次使用web3.(eth.(eth.), "ether")查询这个默认账户的余额:

web3.(eth.(eth.),“以太”)

15

3)转让

在本地创建另一个帐户作为转账的收款人。

.(“wei.lu”)

“23”

执行转账命令 eth.({from: 'b6', to: '23', value: web3.toWei(1, "ether")})

查看这两个账户的余额,发现金额没有变化。那是因为我们的交易还没有成功写入区块。写入区块的方式就是挖矿。

我们再次开始挖矿,挖矿成功后,停止挖矿,查看对应账户,发现金额发生了变化。

目前的的环境搭建就到此结束了,我会根据自己的学习尽快进行补充。

评论区