大家可能已经注意到了,虽然以太坊区块链是一个公有链,但可以通过设置一些参数来运行自己的私有链节点,在自己的私有链上,不需要同步公有链数据,也一样可以进行开发和测试,也不需要花钱购买以太币,更不需要支付以太坊的 gas,节省成本的同时也比较方便。本书后续介绍将使用 Geth 客户端进行说明。
准备好以上环境之后,开始在 Ubuntu Server 上进行如下操作,从 gitHub 上克隆源代码到 Home 文件夹。
(1)克隆 Geth 源代码
(2)安装 Geth
(3)Build Geth执行:
确认:
(4)目录复制
至此完成了 Geth 的安装。
(5)Geth 启动
其中,networkid 为网络 id 识别号;datadir 为数据文件目录;olympic 为测试网络代号,是测试网络的一种;console 为控制台模式启动。
(6)账户生成
接下来,执行 newAccount 来生成一个新的账户。其中 testuser1 和 testuser2 可以用其他字符串代替,是具体新建账户的账户密码(passphrase)。
执行结果:
"0x3fb4037abc56a2ea9bffa24576f890ed5a342ab"
执行结果:
"0x34df178ae2149bffa2453efd176dd4542a12bef"
也可以接着执行 eth.accounts 对结果进行多一次的确认,在执行结果中查看是否有刚刚创建的两个账户:
如果正常,则应该会显示刚刚生成的两个账户地址:「0x3fb4037abc56a2ea9bffa24576f890ed5a342ab」
"0x34df178ae2149bffa2453efd176dd4542a12bef"
(7)余额确认
可以通过执行 getBalance 对账户第一个账户的余额进行确认,eth. accounts[0]可以直接指向第一个账户。
如果是新建账户,则执行结果应该为 0。
(8)区块数确认
可以通过执行 blockNumber 对区块链中的区块数量进行确认。
如果是第一次测试的,则区块链数量应该为 0。
(9)转账发起
接下来体验转账的功能,在转账之前,由于前面确认的账户余额和区块链数量都为 0,所以得想办法获取到一些余额,即现在需要「挖矿」以获取 ether。
可以通过 miner.start( )命令开始进行挖矿,在第一次开始挖矿的时候,由于有一部分初始化处理,因此在挖到第一个区块之前,需要耗费一些准备工作的时间,需要耐心等待。挖矿开始指令如下:
正常的执行结果应该会返回 true。
如果是第一次开始挖矿,则还会有一部分最初启动的日志信息。等待一会儿之后,便开始真正挖矿了,在以太坊中,即便没有交易也是定期产生区块的,在这种情况下挖到区块也有相应的奖励。由于对计算机的 CPU 和内存消耗比较多,故挖差不多一段时间之后达到测试的目标,就可以停止了。执行 miner.stop( )命令:
正常的执行结果应该会返回 true。
再次确认余额:
这里执行结果的数字大小与本身运行开始到停止的时间有关,因此实验结果可能与本次操作不一样,但是如果正常,则结果不应该是 0。本次执行的结果是「65,500,000,000,000,000,000」,需要注意的是,这个数字很大,它的单位不是一个 ether,而是以太坊的最小单位 wei。我们知道 1 个 ether 等于 1018个 wei,所以本次操作共挖获得了 65.5 个 ether。
有了这些以太币之后,接下来可以开始尝试发起一笔转账交易。
使用 eth.sendTransaction 发起一笔交易,eth.sendTransaction 一共有三个参数,即 from 为发出的账户地址,to 为接收的账户地址,value 为发出的数量,注意这里的单位是 wei,如果使用 ether 为单位的话,可以用 web3.towei 进行单位转化。
在这里,acounts[0]代表「0x3fb4037abc56a2ea9bffa24576f890ed5a3 42ab」,accouts[1]代表」0x34df178ae2149bffa2453efd176dd4542a12bef「。因此,上述操作等同于
执行任意一条,之后输入 passphrase(创建时指定的密码)。
输入正确并按回车之后,屏幕将出现一串 txid。txid 是具体交易的 id 号,只发行 txid 并不代表交易已经被确定,因此,可以复制以下这段 txid,并对交易进行确认操作。
通过 eth.pendingTransactions 可以对为确定的交易进行确认。
执行结果如下,以下交易正在等待被矿工打包:
这个时候该做什么呢?以太坊上面还没有矿工,刚刚唯一挖矿的矿工的工作已经被停止了,现在需要重新启动挖矿。重新启动挖矿指令如下:
正常的执行结果应该会返回 true。
再次启动 eth.pendingTransactions 指令,我们将发现该笔交易已经不见了,这代表交易已经被确认,即转账交易已经被确认。
(10)到账确认
再次启动 eth.getBalance 指令,对 accounts[1]的余额进行确认。
如果正常,则执行结果将显示 1000000000000000000。默认单位为 wei。前面转的一个 ether 已经成功地从第一个账户转到了第二个账户中。
(11)停止 geth
实验结束后可以停止挖矿,并关闭 geth,geth 停止的方式很简单,即执行 exit。
正常的执行结果应该会返回 true。
正常的执行结束 geth。
okex以太坊今日行情
#欧易OKEx##数字货币##以太坊[超话]#
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。