以太坊开发(创建私有链(一))

(一)前言
于大四下接到了老师关于区块链开发的项目。由于这是一门之前从未接触过的课程,故开始了上网查阅资料自学的过程。虽然网络上有不少前辈的指导资料和教程,但学习的过程还是颇为坎坷的(有一些教程上的指导方法仅适用于较旧的版本,如若对应最新的版本的则会报错;个别的教程代码是有语法错误的;笔者因诸如此类的种种原因导致开发学习十分低效)。遂萌发了分享记录自己开发的过程博客的内容(作为一个程序员还是比较讨厌重复造轮子的事情,故而别的教程已经说得很明白的事情,我就不再赘述了),希望对大家能有一点帮助。
本篇主要参考的教程为:http://blog.csdn.net/sportshark/article/details/51855007


(二)私有链创建
这里以使用的GETH为例配置为windows7,首先需要我们安装geth构建自己的私有链,通过命令行打开,其基本配置如下图
以太坊开发(创建私有链(一))
文章图片

参考博客的配置创建部分,其中关于创世块部分,我们需要另外在配置文件中加入:

"config":{
"chainId":15,
"homesteadBlock":0,
"eip155Block":0,
"eip158Block":0
}


以上这一段的配置信息,不然初始化会失败。
若初始化后,系统提示”synchronize failed”,则是说明我们的系统并未同步互联网时间,需要我们与互联网时间同步之后,才能正常使用区块链的相关功能。

私有链创建并且初始化之后,我们可以使用newaccount()函数创建账户,等我们至少创建一个主账号之后,就能够使用miner.start(n)、miner.stop()函数控制挖矿了,其中n是指使用多少核的性能来进行挖矿。使用start之后,系统并未返回教程中的信息,而是返回了null,经过测试,发现仍能正常挖矿,故不需要理会。
以太坊开发(创建私有链(一))
文章图片

此时,我们可以安装Ethererum Wallet来进行账户和合约编写部署的操作了。该程序会自动与当前系统创建的私有链进行连接。
调试编写合约时,我们可以使用https://ethereum.github.io/browser-solidity/ 网站进行编译测试,最后再通过Ethereum Wallet部署。值得注意的是,由于版本的迭代,有部分虽仍能在网站上编译通过,但是在Ethereum Wallet上却无法编译成功。
【以太坊开发(创建私有链(一))】如throw函数:Solidity自0.4.13版本之后,throw方法弃用,要实现同样的功能需要根据具体情况使用revert(),assert()来替代。或者将Mist/Ethereum Wallet回退到0.4.13版本之前,也可以使用throw。

    推荐阅读