首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

小白玩区块链系列(一)

2018年什么最火?区块链,区块链,还是区块链。

我一玩独立游戏的为啥去凑这个热闹呢?没办法,太火了,从以太坊上的加密猫开始,国内现在基本上都成了区块链动物世界了,狗、猴、马、驴。。。。。。为了紧跟技术潮流,我也免不了俗,来凑一下热闹,因为刚接触区块链,仍然是小白一个,摸索了很多天,终于有了点头绪,在这把学习过程记录一下,与大家共同进步吧。

至于什么是区块链、以太坊,在这里就不普及了,百度上一大堆,不了解的同鞋可以去恶补一下基础概念,我们这个系列只涉及区块链上的DAPP和智能合约的开发。逼逼了这么多,开始进入正题吧。

我们先来进行环境的搭建,要做区块链的开发,首先我们要搭建一个区块链的环境,这一节我就说一下我的做法,怎么来搭建一个以太坊(区块链只是一个概念,目前最流行的是号称区块链2.0的以太坊)环境的。

要访问以太坊,最简单的方法是下载Ethereum Wallet(以太钱包)或者Mist,下载地址:https://github.com/ethereum/mist/releases,解压缩后运行,等同步完区块后就可以访问以太坊了。

但是我们是做开发,所以我们需要在自己的环境里搭建一个以太坊私有链作为开发环境,要搭建自己的私链,首先要下载geth,全称是go-ethereum,是目前最流行的以太坊客户端,我们需要用它来搭建我们的私链,geth的下载地址是:https://geth.ethereum.org/downloads,可能需要科学上网才能下载。下面分别说一下Windows和Linux下的使用。

Windows:

下载完解压缩出来是一个可执行文件:

解压缩后,设置系统环境变量,把刚刚解压缩出来的路径,比如我的是D:\Program Files (x86)\Go-Ethereum 1.8.1,加入到环境变量的Path中,然后就可以在命令后里运行geth命令了。

Linux:

Linux下的安装比较简单,以太坊对Linux的支持非常的好,所以之后几节要说的搭建私链集群,其中一个节点就是服务器上的一台Linux虚拟机,作为一个长期在线的节点。Linux(以Ubuntu为例)下安装geth只需要三条命令:

sudo add-apt-repository -y ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install ethereum

执行上面三条命令后就安装完了,同样可以在终端运行geth -version来查看geth的版本。

geth安装完后,我们可以开始建立第一个节点了,因为是自己搭建的私有链,所以首先要创建一个创世区块,其实就是一个json文件,废话少说,马上开始。

第一步,新建一个文件夹作为私链的区块目录,然后在这个文件夹下新建一个文件,输入以下内容:

{

"config":{

"chainId":15,

"homesteadBlock":0,

"eip155Block":0,

"eip158Block":0

},

"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",

"difficulty": "0x1",

"alloc": {},

"coinbase":"0x0000000000000000000000000000000000000000",

"timestamp": "0x00",

"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",

"extraData": "",

"gasLimit":"0xffffffff"

}

然后保存成genesis.json文件。

第二步,初始化私有链,在命令行或终端中进入第一步建立的文件夹,然后输入以下命令:

geth --datadir ./ init ./genesis.json

第三步,私有链初始化后,就可以启动私有链了,在命令行或者终端中输入以下命令:

geth --identity "PICCetherum" --rpc --rpccorsdomain "*" --rpcport "8200" --datadir "./" --port "55555" --rpcapi "db,eth,net,web3" --networkid "95518" -nodiscover console

其中identity是私链的标识,可随意定一个,rpcport是之后编写智能合约调试时需要用到的rpc端口,datadir是私有链的数据目录,因为我是在私有链数据目录下运行命令行的,所以就写当前文件夹的路径“./”,networkid是我们私链的网络ID,以太坊公链的networkid是1,我就随意写了一个95518,nodiscover参数是指定我们的私链不被别的节点发现,其它节点需要手动输入私链中的某一个节点的enode才可以加入私链,如果是在内网搭建的话可以不需要这个参数,console参数是指私有链运行输出在终端中。

至此我们已经成功地搭建好了一条以太坊私有链,我们用以太钱包来验证一下。

这里需要说明一点,我们要先在命令行或者终端中使用geth启动私有链,再运行以太钱包,否则以太钱包会默认启动自带的geth来连接公有链的。

Windows下直接运行以太钱包即可看到连接到PRIVATE-NET的标识:

Linux下不能直接运行以太钱包,否则会连接到以太坊的公有链,需要在终端中进入以太钱包所在目录,然后输入以下命令来运行:

./ethereumwallet --rpc "/home/umegame/UMEGameChain/geth.ipc"

命令中的“/home/umegame/UMEGameChain/geth.ipc”是前面初始化后产生的文件,命令会告诉以太钱包连接到我们启动的私有链,点击LAUNCH APPLICATION即可进入钱包。

目前钱包中还没有帐户,我们可以点击ADD ACCOUNT按钮新建一个帐户,建好帐户后我们就可以享受挖矿的乐趣了,可以挖到大把大把的以太币,可惜不能用于公有链的交易。

开始挖矿:

回到私有链的命令行或终端中,输入以下命令就可以挖矿了:

miner.start(5)

start方法中给了一个5作为参数,是说只使用5条线程来挖矿,否则会用尽系统的性能来挖,对系统的性能消耗非常的大,执行命令后,我们回到以太钱包,过一会就可以看到钱包里出现以太币了,哈哈。

至此我们已经成功的搭建了属于自己的一条私有链,但是这条链上只有一个节点,下一节我们将在另外一台电脑上连接我们刚刚搭建好的私有链,形成一条多节点的真正区块链,欲知后事如何,请听下回分解。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

关于UME Game更多的信息、开发日志、创业故事、技术分享……请关注我们的官方号>>>>>

>>>新浪微博:@UME-Game

>>>知乎专栏:UME Game

>>>微信公众号: ume-game

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180328G1AU4F00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券