美文网首页Eth35班--007不写就出局
搭建自己的以太坊网络

搭建自己的以太坊网络

作者: 程序员大叔日记 | 来源:发表于2017-12-28 15:39 被阅读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的语言,也有构造函数、继承、抽象类等概念。

相关文章

网友评论

  • 9e28e35eea1b:也就是说大叔你花钱 造了币?
    咬了一口的苹果灬:@龙猫有形 使用什么命令
    咬了一口的苹果灬:使用命令personal.newAccount("xxx"),创造一个新的用户,该用户的密码是xxx. 测试使用可以使用123456便于记忆;
    怎么使用命令创造一个新的用户,写的让人看不懂
    程序员大叔日记:@AF1_f541 确切的说是造了token,现在市面上很多代币都是这种方式
  • 9e28e35eea1b:大叔 为何不开个课程课我想去学习区块连 毫无功底 我看了一天操作了 一晚上没操作来 下载都失败
    程序员大叔日记:@AF1_f541 多去github官方issue上找资料,要是开课程的需求多,我也可以给大家分享一下
  • 蜜糖771:建立这个以太坊网络有什么用吗?为什么需要建立他?
    程序员大叔日记:在开发智能合约的时候要部署合约、测试代码,运行程序,这些都是要花费以太坊的。在真实的以太坊网络上运行,代价太高了。打一个自己的以太坊网络,用来写智能合约

本文标题:搭建自己的以太坊网络

本文链接:https://www.haomeiwen.com/subject/lsnmgxtx.html