DelegateCall是什么?
DelegateCall作为一个完全运行在Loom的DApp链之上的问答网站,专注于区块链及以太坊相关问题的讨论。
当用户的问题和答案得到好评,他们会赚取karma点数。但是不同于传统的Web 2.0网站,在DelegateCall得到的这些karma点数可以在以太坊主网上换取一个可交易的ERC-20“DelegateCall代币”,从而使用户可以根据他们对网站的贡献获得奖励。
你可以把DelegateCall看作一个由以太坊支持的Steemit和StackOverflow的结合版。
动机
由于之前LOOM开始了Cryptozombies课程,已然在LOOM的主Telegram群和高级开发者群中建立了一个坚实的以太坊开发者及爱好者的社区。
但是Telegram不是一个进行开发者讨论最理想的地方。问题会在络绎不绝的信息中被忽略,而优秀的答案也会逐渐沉没。
因此,LOOM决定创建一个区块链社区网站是可以:
1. 让他们的社区可以聚在一起以一种更持久的形式,分享开发者关于区块链和以太坊开发相关问题的知识和见解
2. 完全运行于一个Loom的DApp链上,从而它可以满足用作演示他们核心平台的双重目的,以及
3. 通过用ERC-20代币奖励用户来鼓励对网站的贡献,同时展示了基于DApp链的DApp与传统网络应用相比的优势之一。(网站当然还有很多其他很酷的地方,比如区块链作为一个面向开发者完全开放的API、完全是可审计的和可分叉的、等等)。
架构/技术细节
DelegateCall的核心,是完全运行在一个Loom Network的DApp链上。它由独立区块链组成,通过一个中继(Relay)链接到以太坊智能合约。
DelegateCall的独立区块链使用了一个Loom DPoS的原型来作为其共识层。Loom的DApp链与普通区块链不同,因为它们能够在本地定义大量复杂的交易类型。以DelegateCall为例,它的DApp链具有本地交易类型如下:创建帐户、创建/更新帖子、接受答案、以及给予好评/差评。
这种意义上,DApp链与传统网络API相似,因为它们都支持可由用户调用的固定数量的方法。
DelegateCall DApp链在blockchain.delegatecall.com创建了一个区块浏览器,所以你可以实时地看到这些交易的发生:

这个区块浏览器允许你查看记录在DApp链中的交易

你可以检查单条交易去看它的内容
通过中继(Relay)链接到以太坊
DApp链通过用一个中继(Relay),将DPoS区块链和一个相应的以太坊智能合约共生链接,以解决此问题。作为一个单一单元,用户可以将他们的资产作为简单的ERC-20代币在以太坊上转移/交易,而应用层仍然是去中心化的、快速而且便宜的。
最终结果,正如在DelegateCall所示,是一个具有无法仅在以太坊上运行的规模的去中心化应用程序。安全地、符合标准地、去中心化地处理资产的同时,维持便宜及高速的交易。
http://DelegateCall.com网站存在的意义是什么?
你可以把http://DelegateCall.com想作是一个与底层DApp链交互的便利层。虽然你不需要使用这个网站来与DelegateCall区块链进行交互,但它为你提供了一个方便的用户界面。(类似于Steem的Steemit.com,或是以太坊的MyEtherWallet / EtherScan)。
这个网站是一个Ruby on Rails应用程序,可以从底层DApp链数据的缓存中读取信息。该缓存(由MySQL数据库和Elasticsearch组成)只是区块链中数据的一面镜子,并且每次发布新区块时都会进行更新。缓存的存在使得网站可以像标准的Web 2.0应用一样快速地提供页面。
当你去到http://DelegateCall.com,你看到的数据就是由这个MySQL缓存提取的。网站还为你提供Loom.js上构建的DelegateCall客户端的副本。
(Loom.js是Loom DApp链的一个通用接口层,它负责在客户端签署交易,并根据DApp链期望的格式,格式化这些交易。你可以把它看作是服务于Loom Network Dapps的以太坊web3.js。)
当你在网站上执行某项操作时(例如给予一个答案好评、发表评论等),不像传统网络应用那样将数据发送到http://DelegateCall.com的网络服务器,Loom.js将直接把你的交易广播到DelegateCall DApp链上。
然后,http://DelegateCall.com上就会有一个工作进程,不断侦听区块链中的更改,并将这些新交易同时发布到MySQL缓存以及Elasticsearch,因此底层区块链上的更改会反映在http://DelegateCall.com上。
DApp链仍然是真实数据的最终来源,Rails应用程序中的数据仅仅是底层DApp链数据的镜面反射。
人们说一图胜千语,所以下面的图解将展示其架构和数据流:

(用户签署他们的交易并将它们直接写入DApp链,随后被复制到Rails应用中的只读缓存中,以便快速读取)
在这里强调一下使用http://DelegateCall.com网站是一个选项——用户可以直接读取和写入底层DApp链,而不是使用http://DelegateCall.com。未来,开发者甚至还可以编写自己的前端,以不同的方式显示数据。
这是构建于底层DApp链之上的社交网站的优势之一 ——就像为底层数据提供完全开放的API,因此第三方开发者可以构建自己的接口,并且用户可以在与服务交互的方式上拥有更多选择权。
注:想了解更多DAPP、游戏、技术和区块链资讯,可加QQ1245370852或下载“爱链”APP进行了解哦
网友评论