Forge 如何帮助开发者跨越区块链技术鸿沟
2019-05-10
作者: 陈天(ArcBlock 研发副总裁)
来源: 程序人生 (ID:programmer_life)
周二晚上做了一个关于我们的去中心化应用开发框架 Forge framework 的讲座,不少朋友询问在哪里能看到讲座的视频 —— 其实我们每周的 technical learning series 的报名和随后的视频都可以在:arcblock.io/zh/learning 上找到,不过视频都是放在 youtube 上的。如果懒得翻墙,可以关注我们的微信公众号:ArcBlock,同样的视频会放在腾讯视频,在公众号里添加链接。
这次讲座,前半部分,我简要回顾了一下处在十字路口的区块链技术:
过去十年的铺垫,让区块链技术有了扎实的理论基础,Bitcoin, Ethereum 以及其后继者给我们展现了数据公开可验证且不可篡改的独特魅力和无穷潜力,于是一个又一个去中心化应用拔地而起,一条又一条有的没的的「公链」以迅雷不及掩耳之势凭空造出,比大自然还鬼斧神工 —— AI 工程师们自嘲自己是调参工程师,其实好多区块链工程师才是真正的调参工程师:把共识的参数调一调,一条链就出来圈钱了。然而过去的一年里我们看到,喧嚣散尽,留下的是一地鸡毛。区块链技术陷入了一个尴尬的境地:她活在舞台的中心,一颦一笑都牵动着媒体,可她衍生出来的产品却无人问津。我们知道,一个产品用户愿意使用,一定是产品抓住了用户的痛点或者痒点,让用户为之侧目;开发者要能开发出抓住用户的产品,他们自己必须对产品有深刻的理解,有趁手的工具来开发产品,并脚踏实地真心做事;而用对了工具,往往可以释放巨大的产能。iPhone 诞生前,人们对手机 app 的理解是 S60 或 Windows mobile 的样子,ruby on rails 起势前,web 开发是低效的,大军团作战的,因而往往中庸中透着丑陋。
所以我们要解决这个 flow 里面缺失的环节:
否则,很难诞生让用户喜爱的产品。如果一直不能诞生足够多用户愿意长期使用的产品,那么可能很难出现区块链时代的杀手级应用(就像 google 之于互联网,微信之于移动互联网)。也就很难更进一步,让区块链技术跨越鸿沟,进入主流市场:
这条横亘在主流用户和区块链技术间的鸿沟是 Forge framework 的历史机遇。我们热切地希望:
- Forge 提供从构建应用链到开发应用链的一整套工具,让 dapp 可以按需定制
- 让用户完全拥有自己可控的 Decentralized ID(我们完整支持 DID 协议)
- 每个 dapp 有自己的应用链
- 应用链上运行什么样的交易协议(transaction protocol),完全由链说了算
- 应用链可以在利益相关人达成共识后,「自动」更新节点的软件,或者更新某个交易协议
- 应用链运行起来之后像一个去中心化的应用服务器,支撑链上运行的应用
- 开发者可以像开发一个 web app 那样,轻松开发 dapp
- 最终用户对链尽可能无感知
一年的积淀,半年多的努力,Forge framework 终于成型(虽然还有很多可成长的空间),并且我们为开发者精心烹制了 javascript / python / elixir / erlang 等几种语言的 SDK。
为了展示我们的 Forge framework 和 Forge SDK 的强大能力,在这次讲座中,我做了三个 Demo:
- 一键发链 —— 我发了一条真正生产环境可用的链 sisyphus(而非像某著名公司大张旗鼓演示的那样,在 mbp 上搭建一个节点,就算是发链了)。我展示了发布一条有五个验证人节点,三个哨兵节点并且自带区块浏览器和 GraphQL playground,构建在 aws spot instance 之上,用 ALB 做 web 流量 load balance(主要是提供区块浏览器支持,以及 GraphQL API 以便钱包 APP 可以很方便访问),以及自动设置好域名并使能 HTTPS 的一条应用链 —— 这才是真正的一键发链。并且,我本地初始化好一个节点,只消一条命令,就可以无障碍加入这条链。
- 在我本地节点加入 sisyphus,我可以使用 elixir SDK(其它支持的 SDK 我们都会有对应的讲座)来访问链上的基础数据,然后,完成钱包的创建,以及转账。
- 第三个 demo 真正把这条链转化成一条应用链 —— 我几十行代码写了一个简单的生成证书的交易协议,然后将其热部署到 sisyphus(为 demo 方便,我直接使用了一个拥有特权的上帝账户部署,正常应该走投票的流程)。加载完成后,sisyphus 这条链就支持生成证书了。在 demo 中,我假设自己是伟光正的克莱登大学的校长,用 sisyphus 生成了一个克莱登大学的博士学位证书,然后将其以 10 个 TBA 出售给一个叫 tyrchen 的二傻子。
完整的视频可以看:
放 1.5 倍速,这样节约您的时间。