Substrate应用 - 抛硬币游戏(一)

作者:Kaichao

当我们应用区块链解决生活中问题的时候,它的价值就产生了。如果还不清楚Substrate的基本概念,在开始本文的阅读之前,我希望你能大概浏览Substrate开发者中心的文档:https://substrate.dev 或者参考之前的教程《使用Substrate搭建你的第一条区块链》来了解Substrate相关的基础知识。本文会从零开始开发一条承载具体业务的区块链应用,即抛硬币游戏。

预备

  1. 快速安装Substrate依赖,详细内容参考开发者中心文档《Installing Substrate》
curl https://getsubstrate.io -sSf | bash -s -- --fast
  1. 更新substrate-up脚本,它提供了初始化节点、创建新模块等功能:
git clone https://github.com/paritytech/substrate-up
cd substrate-up
cp -a substrate-* ~/.cargo/bin
cp -a polkadot-* ~/.cargo/bin

创建区块链节点

作为一个通用的区块链开发框架,Substrate提供了用于构建区块链的所有组件,开发者要做的只是将需要的组件组装起来。为了帮助开发者从繁杂的组装工作中解放出来,Substrate提供了两类的节点程序来快速实现组装工作:

  • Template Node: 包含了所需用到的最少组件,但是依然具备完善的区块链功能。可以在其上快速开发应用,添加新的功能模块。
  • Node: 基本上包含了Substrate提供的所有组件,让你能够测试内置的各种功能。

这里所说的节点通常也被称为点对点节点或者全节点,承载了区块链的所有功能,你可以把它想象成传统互联网开发中的后端,但是没有放在中心化的服务器上,而是散落在世界的各个角落里。

本文我们将会用Template Node作为我们的节点程序,承载我们的抛硬币游戏。

初始化节点

substrate-up脚本提供的初始化节点命令是substrate-node-new,通过下载和编译Template Node来生成我们的节点程序。运行下面的命令来生成节点,替换demo-node为你自己的节点名,替换yourname为你的团队或个人名字:

substrate-node-new demo-node yourname

启动刚刚生成的节点:

cd demo-node
./target/release/demo-node --dev

如果在控制台看到这些内容,证明你的节点创建成功:

2019-07-27 18:03:45 Substrate Node
2019-07-27 18:03:45   version 1.0.0-2857a44-x86_64-macos
2019-07-27 18:03:45   by demo-author, 2017, 2018
2019-07-27 18:03:45 Chain specification: Development
2019-07-27 18:03:45 Node name: safe-tin-6167
2019-07-27 18:03:45 Roles: AUTHORITY
2019-07-27 18:03:45 Initializing Genesis block/state (state: 0x79b0…3c01, header-hash: 0xacb5…bb17)
2019-07-27 18:03:45 Loaded block-time = 10 seconds from genesis on first-launch
2019-07-27 18:03:45 Best block: #0
2019-07-27 18:03:45 Using default protocol ID "sup" because none is configured in the chain specs
2019-07-27 18:03:45 Local node identity is: QmZH4oHKH4nwaP4apeYCM7EJXkxAjv4AqnJt29MrMNhWBV
2019-07-27 18:03:45 Libp2p => Random Kademlia query has yielded empty results
2019-07-27 18:03:46 Listening for new connections on 127.0.0.1:9944.
2019-07-27 18:03:46 Using authority key 5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu
2019-07-27 18:03:48 Libp2p => Random Kademlia query has yielded empty results
2019-07-27 18:03:49 Accepted a new tcp connection from 127.0.0.1:62636.
2019-07-27 18:03:50 Starting consensus session on top of parent 0xacb55b52944dff23e2aa99326cc20b1f9c091556516d15db9ffcffd7d159bb17
2019-07-27 18:03:50 Prepared block for p
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值