Eth35班--007不写就出局

搭建自己的以太坊网络

2017-12-28  本文已影响2183人  程序员大叔日记

本文由币乎(bihu.com)内容支持计划奖励

目前以太坊官方提供了两种网络:线上生产网络、测试网络。

以太坊生产网络就是真正有价值的 的以太币运行的网络。我们使用的以太币进行转账、支付都是在生产网络上进行,每一个操作都需要消耗实实在在的ETH。智能合约也是部署在生产网络上,智能合约代码的执行调用都清晰可查,并且可供所有开发者调用。

以太坊的测试网络也是官方提供专供用户来开发、调试和测试的。但是测试网络的节点也是全球化的,现在测试网络的区块数量也很大,执行速度较慢,不便于开发、调试。

下面我们使用Geth安装自己的以太坊私有网络 PrivateNetwork。

Geth安装可以直接到官网下载对应的版本,进行安装:https://ethereum.github.io/go-ethereum/downloads/ 

安装完成后,需要创建私有网络的初始状态,所有节点都需要了解并达成一致。新建一个Json文件如gen.json,文件内容如图所示:

然后执行命令初始化节点 geth init gen.json,可以看到将节点数据写入了对应的文件夹中,此时当前目录下面会新增出两个文件夹geth和keystore

geth中用以保存区块链的相关数据

keystore中保存的是用户数据

使用命令personal.newAccount("xxx"),创造一个新的用户,该用户的密码是xxx. 测试使用可以使用123456便于记忆;

输入命令 eth.accounts, 我们会看到刚刚创建的新用户,可以看到已经创建了2个账户

至此,我们已经成功搭建了一个私有的ETH网络。

最简单的智能合约

pragma solidity 0.4.9;

    contract AddDemo {

        function add(uint a) returns (uint b)

        {

            uint result = a + 1;

            return result;

        }

    }

pragma solidity 中pragma是关键字,0.4.19 表示编译器的版本,从0.4.9起可以在不在前面使用^

contract是关键字,表示合约,和面向对象编程语言中的类Class很像,可以定义变量和方法。 function add(uint a) returns (uint b)就定义了一个名为add的方法,输入参数为uint a,输出参数为uint b。

Solidity语言是一种类JS的语言,也有构造函数、继承、抽象类等概念。

上一篇 下一篇

猜你喜欢

热点阅读