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
},
"nonce":"0x0000000000000042",
"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
啥玩意儿,游戏性不比什么区块链重要,77w一只猫,那都成笑话了。到底是赌博还是玩游戏。
@Oncle:严重赞同,其实严格意义上来说加密猫根本算不上游戏,现在国内都成动画世界了
有价值的研究!期待后续
@iNSPiRATiON 灵感发现:谢谢关注,本周会再搞第二篇出来
区块链和游戏有啥关系?先码