剑英的区块链学习手记(二)
孙子说,知己知彼,百战不殆。
咱是通过小蚁学习区块链技术的。
开工之前,先了解一下小蚁的资料家族。
小蚁网站 https://www.antshares.org/
小蚁源码 https://github.com/AntShares
小蚁SDK源码 https://github.com/ANTSHARESSdk
比较集中的资料 https://github.com/AntShares/AntShares/wiki
小蚁技术交流QQ群 451931692
加粗,红字伺候,虽然看完资料以后,我表示
我是谁?我在哪儿?我要干什么?
已经失去了人生的意义,知己知彼一开始就遇到了阻力。
于是我带着我的小白疑问,跑去探访了分布科技
By the way,如果要去探访分布科技,从江湾体育场出来,路过的大学路上有很多酒吧之类的,可以放置对科技公司感到无聊的女朋友和宠物之类的,不要问我为什么知道。
又找CTO张铮文请教 low 到爆的问题,明显感觉到对面投来不屑的眼神,好在我最大的特点就是脸皮自带回血。
第一个问题
我问:我要在哪儿写下我区块链学习之旅的第一行代码?
这个问题没有得到正面回复,通过进一步沟通,我发现了问题所在,这个问题没有答案。
小蚁形成了一个平台,我们可以以很多的身份加入这个平台,不同的身份就有不同的开始路径。
有了一个大概的认知,我想可以问一些真正的问题了。
那一刻,我卓伟附体,狗仔队的精神给了我力量。
我抛出了一个非常无礼的yes or no 问题:我想开发一个用小蚁币作为结算工具的赌博游戏,有自己的UI,是不是我需要以AntSharesCore/AntSharesUI这个项目作为参考例子,自己写一个。
这次,我得到了0.5个Yes,回复说“可以”。
好,这解决了一个形式问题,我得到了一些关于小蚁的知识
开发使用小蚁币结算的APP,可以用AntSharesCore/AntSharesUI为参考,自己写一个。
但“可以”显然还有潜台词,又经过各种友好的被我跑题、发散之后,我偶然问到了一个问题。
我问:AntShares上面那一堆开源项目,都是啥关系啊。
AntShares/AntShares 核心
AntShares/AntSharesCore 客户端,一个winform的有UI,一个命令行的
AntShares/AntSharesApp 轻客户端
AntShares/AntShares.VM 虚拟机,这个我熟
AntShares/AntShares.SmartContract.Framework 智能合约c#模板
这些信息目前对于我来说,就是一堆符号。
我只用过钱包客户端,有界面的那个
但我突然发现,没有提到https://github.com/ANTSHARESSdk 这个东西
又问:SDK是干嘛的?
一不小心,潜台词找到了。
原来 命令行客户端内有乾坤
加上这个参数 /rpc,命令行客户端自己开了个本地服务器。
可以用小蚁的命令行客户端当服务
然后自己开发一个客户端,调用命令行客户端提供的那些接口完成在小蚁区块链上的操作。
SDK 就是干这个用的。
说句实在话,在wiki上看到过这些内容
https://github.com/AntShares/AntShares/wiki/API%E5%8F%82%E8%80%83
但是没有一堆杂七杂八的铺垫和询问,还真挺难把他们联系起来。
现在我可以确定,我要找的答案:
就 是 他
再见,回家。
解决了第一个问题,不虚此行。
先来总结一下,我的目标是做基于小蚁区块链的应用,使用小蚁币结算,我最主要的给用户看的东西是一个独立的APP,不是小蚁客户端。
现在有两条路:
一、研究小蚁的winform客户端,抄之。
二、研究小蚁的命令行客户端的http服务,调之。
当然选二呀,不是因为我的人生就是这么二。
而是有两点具体的考虑。
- hybird,js 已经烂大街了,现在hybird混合开发那么流行。用二,直接就走上了流行的路线,流行不是问题,人口大呀,web前端程序员的领域。
而我也在webgl 的路上探索,这不是我就可以做个3D的游戏了。
顺便给自己的h5 3d引擎打广告,需要合作请联系我。
网页游戏用小蚁币结算,听起来不错呀。
2.钱包要同步账簿的,一台电脑开几个太不环保了,当然是一台电脑开一个钱包服务,其他应用去调用他啊,二就是这个模式。
你想啊,如果都用模式一,研究winform客户端开发自己的。用户用各种基于小蚁的应用,各自都在那同步账簿,多不环保呀。
如果基于小蚁的应用多起来,官方肯定要做些环保方面的规范的,我们可以着眼于未来一点嘛。
动手动起来
第一步,安装dotnet core
验证方法,在命令行中输入dotnet
第二步,下载小蚁命令行客户端
安装,不用,是绿色的,不过没有发布成exe,需要用dotnet core 来启动。
先别启动,要不然你一会儿还得删除账簿目录。
因为我们要用测试网络
注意config.json 和 protocol.json
他们各自都有两个副本,用 testnet 的副本的内容,就是 测试网络
用Mainnet副本的内容 就是主网。
复制黏贴问题,略去不表。
然后启动,慢慢同步
别忘了rpc参数
命令行怎么用
启动起来是个死循环,会显示ant>
可以输入help 看有那些命令行指令可以用。
Show state 是看同步情况的
不知道同步还有多久,可以看看当前高度,从antcha.in 看当前高度的方法是 onchain 的陈志同告诉我的,很实用。
比较常用的指令是
Create wallet 创建钱包
Open wallet 打开钱包
List address 看账户
List asset 看资产
Send 资产种类 地址 数量 直接对地址转账
先让他慢慢同步去,我先来写下我的第一行代码,打开浏览器,在地址行输入
这条就是查询区块链高度的,通过http访问会得到一个json的回复
第一行代码是输入在浏览器里面的,你很失望吧。
不要着急,想想阿基米德
支点已经有了,一起战吧。