Celer Network最小可行产品:最先进的状态通道全栈解决
原文来源于Medium.作者:Celer Network
翻译:水兔儿
作者首发于U赞,若转载请注明出处。
水兔儿陪你一起穿越熊牛,共同成长。
在我们初期的技术博文发布后,我们收到了许多积极的回复。许多区块链开发者关心的一个问题是,他们如何以及什么时候可以构建cApp(celer网络上的APP)以将其区块链应用程序的用户群扩展到百万。
今天,我们很高兴的是能够在 Ethereum 上发布Celer Network的全栈MVP(minimal viable product)演示,作为对这个问题的初步回应。
一个可被信任的链下手机棋盘游戏。
为了演示各种各样的功能,我们选择展示我们的第一款移动脱链cApp:cGomoku,一个五子棋游戏。
0_K_7-iN3zyai3lb4g.jpg五子棋是传统的在棋盘上用棋子来玩游戏。玩游戏的两个人轮流将自己颜色的棋子放在棋盘里未被放置棋子的交叉点上。谁先水平地、垂直地和斜向地形成五个直接相连的棋子,谁就获胜。五子棋早在几千年前就被发明了。——维基百科。
“茶于对决”胡德福
传统上来说,五子棋博弈游戏就像是,两个人请一个德高望重、可信任的村里的长者(见证者),双方将相同的钱或物(担保品)暂交第三方(见证者)保管。游戏开始后,见证者将确认游戏双方在他面前每一个动作是否有效。游戏结束后,见证者将用输家的钱或物(担保品)作为奖励给到赢家。
受到这个流传千年的五子棋游戏的启发,我们在Celer 网络上发明了一个cGomoku(celer网络上的五子棋游戏),它具有以下特点:
1、没必要再寻找见证者
2、你可以选择与全世界任何人玩这个游戏
你肯定会反应过来说:“等等,这两件事我都可以用一个链上智能合约做到啊,你celer有什么好嘚瑟的呢?”
没错!你确实可以轻松设计出一个智能合约来接受担保金和执行游戏双方的游戏逻辑,但是,这个使用起来非常贵,效率低。因为每一笔担保金和每一个棋盘游戏中的操作需要全球超过10000多个节点全网广播。没人愿意花费0.5美元/棋同时花150美元的交易费用加上交易确认等待3小时。因此,让它能真正实用并实现大量应用,我们决定要从这些方面解决问题:优化用户体验、高可扩展性、降低费用,Celer Network 就是来做这些的。 1_62EcgDBYK_o7HWOVF2ENWQ.png终端用户通过celer的网络节点来相互连接。在Celer Network中,终端用户通过实现广义状态功能的cChannel连接到去中心化、可信任的celer网络的节点。在这些节点中,cRoute用于在终端用户之间实现优化和建立信任的广义状态(如,有条件支付)。对于用户,连接到Celer Network就如同现在你用谷歌、脸书等连接互联网一样。一旦连接到Celer Network,基于cOS(celer操作系统)的所有cApp将可供用户安装并被大规模低费用地使用。 cGomoku就是这样一个使用cOS API构建的cApp。
尽管这是Celer Network第一个演示,但是我们认为它展示了迄今为止最先进的全栈链下操作网络并具有一系列连贯的功能。
完备的广义状态通道dApp逻辑。cOS不仅仅是支持简单的现有的链下交易,还提供API和设计框架去支持广义状态的链下应用交易。当一个人在cGomoku上下棋的时候,每一步动作是通过链下逻辑执行的。不需担心安全性和最终结果,因为每一步都可以通过链上广义状态去验证。
开箱即用的有条件支付。 区块链应用通常与价值转移相关,在cGomoku中就是这样,胜者将会马上获得失败者的补偿。这里有意思的事情是确保无人能作弊:输家支付了。cChannel能够建立一个有条件支付。譬如,在游戏开始前,双方能够发送一个有条件支付请求到对应物“如果你赢了我会支付给你5美元”,这可以对作恶选手强制执行。请注意,支付逻辑和Gomoku逻辑是具有状态依赖性的单独智能合约对象,因此cGomoku可以与所有其他cApp共享相同的付款渠道。更宽泛来看,除了这种简单的逻辑外,cOS和cChannel支持具有任意分辨率逻辑的通用条件依赖DAG。
一次性设计,长期使用频道。连接Celer Network就如同连接互联网。你能够选择一个或者某些接口打开cChannel,这些是你唯一需要完成的链上操作,除非你的钱用光了或者遭遇到作恶者。就像你可以使用相同的网络服务提供商访问各种I网络应用程序一样,你可以使用相同的cChannel同时访问各种类型的cApp,以下三个功能对支持这种易用性至关重要。
多点跳跃可信任状态中转的Celer Network。在Celer Network中,每一个终端用户只需要去连接一个或者某些接口。不仅仅是简单的支付还有更复杂的有条件状态的交易需要在多点跳跃中被中转。Celer Network的cOS为应用程序提供了一个简单的API调用来执行这种复杂的多跳条件状态中转,而不用担心与cChannel网络的交互。
模块化状态争议的处理办法。 有时候链上的状态出问题是不可避免的。 例如,其中一名cGomoku玩家可能会断网掉线。 在这种情况下,我们希望尽量减少这种链上结算突发问题。 谁都不想仅仅因为一个离线的Gomoku对手关闭自己所有的频道。 cChannel的界面被设计为每个链下对象都被分隔开来从而可以实现这个需求。
纯链下对象。多数人想想每一个链下应用必须要经过一个链上初始化的阶段才能建立联系,这种思考模式并不准确。链上联系只需要给交易通道逻辑,因为每一种支付通道的状态出现(Alice将X钱存入信道)需要被全网确认来防止出现双花问题同时也能防止出现“状态竞争条件”(举例来说,如果计算机中的两个进程同时试图修改一个共享内存的内容,在没有并发控制的情况下,最后的结果依赖于两个进程的执行顺序与时机。而且如果发生了并发访问冲突,则最后的结果是不正确的。——维基百科)
但是,如果我们看一下cGomoku,只要涉及到所有参与方签署了这个状态,游戏状态就是有效的,在这种情况下,任何状态竞争条件都不会发生。因此,cGomoku不需要链上状态或者操作除非有人有争议出现。我们称这种对象叫做纯脱链对象。但是如果我们想在后面的区块链上讨论这个纯脱链对象,我们如何恰当的引用呢?Celer Network提供了一种为脱链对象构建的独特可识别引用(Off-chain Address)的方法,仅在需要时才在链上部署对象,并提供Off-chain Address Translator(OAT)以建立脱链映射链下地址到链上地址。
移动cOS原生开发框架和运行时间。 Celer Network在cOS的规范下提供了首个基于移动的脱链应用程序开发框架。 cOS让开发人员专注于应用程序逻辑的开发和创造最佳用户体验,而不用被繁琐的脱链状态交换、跟踪和争议浪费时间。 无论你想在电子商务应用程序中启用快速安全的交易还是在病毒式手机游戏应用程序中添加丰富的游戏化功能,用户体验都会如丝般流畅,告别缓慢的交易过程和昂贵的交易费用。
让我们来看一段视频演示吧!
那么建立一个cAPP需要什么?
你可能会这么想说,“哇,这个cGomoku必须是超级复杂难以搭建啊! 我需要学习不同的语言吗?”
不要再担心了! 几乎所有的复杂性都由cOS透明地处理了。 事实上,如果您已经建立了链上Gomoku智能合约,则智能合约的核心“脱链”部分是微乎其微的增量。使用简单的API实现脱链逻辑也很简单。
Celer Network将抽象的想法具体实现,且为了适应链上分布式应用目前的水平,Celer Network简化了脱链cApp的开发程序。
官方将在几周内分享项目路线图和开源时间表。对celer 感兴趣的小伙伴可以点开下面的链接关注。
Website: https://www.celer.network/
Telegram: https://t.me/celernetwork
Github: https://github.com/celer-network
Twitter: https://twitter.com/CelerNetwork