发布DelegateCall.com:首个在Loom Network上运行的DApp链

Loom Network Chinese
Loom Network Chinese
8 min readMar 13, 2018

原文作者:James Martin Duffy

原文链接:https://medium.com/loom-network/announcing-delegatecall-com-the-first-dappchain-live-on-loom-network-f95912388a4c

在过去的几个月里,我们讨论了很多关于DApp链可以作为扩展以太坊DApps的解决方案。但是到目前为止,它绝大部分都还只是停留在理论阶段。

今天,一切都将改变:我们很荣幸能正式发布第一个在Loom Network上运行的DApp

向你介绍——DelegateCall.com

DelegateCall是什么?

DelegateCall作为一个完全运行在Loom的DApp链之上的问答网站,专注于区块链及以太坊相关问题的讨论。

当用户的问题和答案得到好评,他们会赚取karma点数。但是不同于传统的Web 2.0网站,在DelegateCall得到的这些karma点数可以在以太坊主网上换取一个可交易的ERC-20“DelegateCall代币”,从而使用户可以根据他们对网站的贡献获得奖励。

你可以把DelegateCall看作一个由以太坊支持的SteemitStackOverflow的结合版。

动机

由于在几个月前我们开始了Cryptozombies课程,我们已然在我们的主Telegram群高级开发者群中建立了一个坚实的以太坊开发者及爱好者的社区。

但是Telegram不是一个进行开发者讨论最理想的地方。问题会在络绎不绝的信息中被忽略,而优秀的答案也会逐渐沉没。

因此,我们决定创建一个区块链社区网站是可以:

  1. 让我们的社区可以聚在一起以一种更持久的形式,分享他们关于区块链和以太坊开发相关问题的知识和见解
  2. 完全运行于一个Loom的DApp链上,从而它可以满足用作演示我们核心平台的双重目的,以及
  3. 通过用ERC-20代币奖励用户来鼓励对网站的贡献,同时展示了基于DApp链的DApp与传统网络应用相比的优势之一。(网站当然还有很多其他很酷的地方,比如区块链作为一个面向开发者完全开放的API、完全是可审计的和可分叉的、等等)。

DelegateCall是我们在内部构建的(很多中的)第一个示例来向开发者展示可以在Loom Network上构建的DApp类型。

小剧透:接下来,我们将把注意力放在基于区块链的游戏上。敬请期待在未来2个月中我们的一些重大更新!

架构/技术细节

DelegateCall的核心,是完全运行在一个Loom Network的DApp链上。它由独立区块链组成,通过一个中继(Relay)链接到以太坊智能合约。

DelegateCall的独立区块链使用了一个Loom DPoS的原型来作为其共识层。未来,只要Tendermint和Casper推出了各自的算法实现,我们还将计划支持他们开发的PoS算法。

Loom的DApp链与普通区块链不同,因为它们能够在本地定义大量复杂的交易类型。以DelegateCall为例,它的DApp链具有本地交易类型如下:创建帐户、创建/更新帖子、接受答案、以及给予好评/差评

这种意义上,DApp链与传统网络API相似,因为它们都支持可由用户调用的固定数量的方法。

我们为DelegateCall DApp链在blockchain.delegatecall.com创建了一个区块浏览器,所以你可以实时地看到这些交易的发生:

这个区块浏览器允许你查看记录在DApp链中的交易
你可以检查单条交易去看它的内容

通过中继(Relay)链接到以太坊

DPoS在区块链社区中的名声不是特别好,因为它没有PoW和PoS那么去中心化。

这是一个实在的担忧,但是与其他更去中心化的公式算法相比,DPoS每秒能够处理更高的交易吞吐量。

所以我们遇到了一个小难题。DApps需要高吞吐量才能与传统网络应用(例如Twitter,面对着每秒7,000条推文)相媲美。然而,独立的DPoS区块链永远不会像以太坊这样的PoW区块链那么值得信赖。

DApp链通过用一个中继(Relay),将DPoS区块链和一个相应的以太坊智能合约共生链接,以解决此问题。作为一个单一单元,用户可以将他们的资产作为简单的ERC-20代币在以太坊上转移/交易,而应用层仍然是去中心化的、快速而且便宜的。

最终结果,正如在DelegateCall所示,是一个具有无法仅在以太坊上运行的规模的去中心化应用程序。安全地、符合标准地、去中心化地处理资产的同时,维持便宜及高速的交易。

我们将在未来发布更多关于中继(Relay)实现Loom的DPoS算法的细节。(以及Loom Vault,它是一个为用户管理私人钥匙的可选的第三方服务)。

DelegateCall.com网站存在的意义是什么?

你可以把DelegateCall.com想作是一个与底层DApp链交互的便利层。虽然你不需要使用这个网站来与DelegateCall区块链进行交互,但它为你提供了一个方便的用户界面。(类似于Steem的Steemit.com,或是以太坊的MyEtherWallet / EtherScan)。

这个网站是一个Ruby on Rails应用程序,可以从底层DApp链数据的缓存中读取信息。该缓存(由MySQL数据库和Elasticsearch组成)只是区块链中数据的一面镜子,并且每次发布新区块时都会进行更新。缓存的存在使得网站可以像标准的Web 2.0应用一样快速地提供页面。

当你去到DelegateCall.com,你看到的数据就是由这个MySQL缓存提取的。网站还为你提供Loom.js上构建的DelegateCall客户端的副本。

Loom.js是Loom DApp链的一个通用接口层,它负责在客户端签署交易,并根据DApp链期望的格式,格式化这些交易。你可以把它看作是服务于Loom Network Dapps的以太坊web3.js。

当你在网站上执行某项操作时(例如给予一个答案好评、发表评论等),不像传统网络应用那样将数据发送到DelegateCall.com的网络服务器,Loom.js将直接把你的交易广播到DelegateCall DApp链上。

然后,DelegateCall.com上就会有一个工作进程,不断侦听区块链中的更改,并将这些新交易同时发布到MySQL缓存以及Elasticsearch,因此底层区块链上的更改会反映在DelegateCall.com上。

DApp链仍然是真实数据的最终来源,Rails应用程序中的数据仅仅是底层DApp链数据的镜面反射。

人们说一图胜千语,所以下面的图解将展示其架构和数据流:

用户签署他们的交易并将它们直接写入DApp链,随后被复制到Rails应用中的只读缓存中,以便快速读取

我想强调一下使用DelegateCall.com网站是一个选项——用户可以直接读取和写入底层DApp链,而不是使用DelegateCall.com。未来,开发者甚至还可以编写自己的前端,以不同的方式显示数据,比如我们的区块浏览器是完全独立于Rails应用程序的。

这是构建于底层DApp链之上的社交网站的优势之一 ——就像为底层数据提供完全开放的API,因此第三方开发者可以构建自己的接口,并且用户可以在与服务交互的方式上拥有更多选择权。

我们将在未来几周内向开发者发布更多关于开发者可以如何与DelegateCall和其他Loom DApp链进行交互的信息。

下一步?

明天,我们将发布更多详细信息的后续公告,并且还会介绍Loom Network将会带来了下一个惊喜

你不会想错过的!

在此期间:

  1. 到DelegateCall.com注册帐号并加入到我们的知识库吧!
  2. 加入Loom Network mailing list获取未来更新的提醒
  3. 有疑问?加入我们的Telegram聊天室

Loom Network 是扩展功能性 dapp 的多链互操作平台 — — 已正式投产、完成审计并全面测试。

你的 dapp 只需部署到 Loom 的 Basechain,便可触及所有主要区块链的最大用户群。

想了解更多信息? 请从这里开始

想锁定你的 LOOM 代币并帮助维护 Basechain 的安全?看看这里

想保持关注?请注册我们的邮件列表

--

--

Loom Network Chinese
Loom Network Chinese

中文社区 @ Loom Network — — 面向医疗服务提供者的分布式企业平台 https://loomx.io