DelegateCall.com|首个在Loom Network上运行的DApp链

转载 LoomNetwork  2018-04-23 12:19  阅读 792 次

2018/03/14 Loom Network

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

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

向你介绍——DelegateCall.com。

DelegateCall是什么?

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

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

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

动机

由于在几个月前我们开始了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 (https://github.com/loomnetwork/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链进行交互的信息。

本文地址:http://www.lianchaguan.com/archives/1294
温馨提示:文章内容系作者个人观点,不代表链茶馆对观点赞同或支持。
版权声明:本文为转载文章,来源于 LoomNetwork ,版权归原作者所有,欢迎分享本文,转载请保留出处!

发表评论


表情