将以太坊dApp迁移到其他网络?没问题!

像素像素

由于具有EVM和web3支持的Echo协议,现在可以以最小的工作量将运行中的以太坊dApp迁移到另一个网络。

PixelPlex使得我们能够在另一个网络(在我们的例子中为Echo )上启动现有的以太坊项目和dApp,这是以前从未做过的。这为区块链社区带来了新的令人兴奋的机会。

在采用区块链时,以太坊有一些缺点,可以使人们考虑迁移到另一个网络。一些主要的缺点是:

  • DeFi和收藏品导致以太坊网络拥塞
  • 高额费用
  • 交易吞吐量低

考虑迁移的另一个重要原因是其他网络提供了独特的功能,更大的可能性和发展的自由。例如, Echo提供了有效的比特币侧链和C ++智能合约支持,以及EVM和Web3支持。

与以太坊相比,我们最近迁移的0x在Echo平台上的性能要好得多。以下是原因。

  • 比特币和以太坊侧链可以被视为最大的0x交换优势。用户可以使用几乎完全去中心化的BTC和ETH交叉交换。
  • 此外,与比特币相反,Echo以智能合约技术为基础,该技术为0x协议开放了新的比特币交易功能:
  • 基于智能合约的保证金交易是Echo值得仔细考虑的另一个好处。
  • 此外,Echo还允许进行信用交易,以进行代币清算,以偿还债务。
  • Echo用户也可以使用经纪人交易。只需在交易时段内将账户访问权限授予经纪商即可,并且具有取款限制。同样,该过程是分散的,这意味着您不必将钱包托付给任何人。
  • 回到侧链。除以太坊外,Echo还使用代币进行操作,使其相对于比特币而言具有独立的全价值资产的资格,无需为交易所支付交易所的费用。
  • 围绕令牌主题,我们不得不提及回声的另一个好处。具体来说,就是合同费用池。相反,您必须非常了解以太坊在这方面的瓶颈。每当您希望将ZRX交换为REP时,您都应始终拥有一些ETH。当涉及到Echo时,平台通过合同的费用池保证金处理此问题。基本上,Echo通过为客户提供通过其费用池支付交易的机会来照顾他们的客户。
  • 众所周知,以太坊缺乏本机多重签名,如果通过特定合同进行处理,这并不是什么大问题。但是,为了进入分散交易,您需要通过建立主机签名来批准您的财产。主机地址将是您的合同地址。因此,分散交换所实际上不适用于基于多重签名的钱包。这就是Echo的双赢解决方案。只要该平台在帐户级别上支持多重签名功能(相对于合同而言),客户就可以绝对使用其帐户进行交易。
  • Echo拥有惊人的吞吐量,每秒不少于1000个事务。说到以太坊,要进行更改,它只能处理8到25笔交易,而其他合同活动可能会使网络效率受到质疑。
  • 那些选择以太坊进行0x卖空的人应该更好地为该任务选择Echo。显然,与Echo相比,以太坊的高额费用将是一个大问题。

下订单后,您必须进行一到三笔交易,并注意它们应该跨越不同的块。具体来说,您可以预期以下以太坊计时,每20秒进行一次交易:

00:00-第一笔交易开始

00:10 —期望当前块启动,没有事务

00:30 —期望事务块启动并获得批准,您必须再次尝试事务

00:50 —预期即将到来的区块,没有交易

01:10 —下一个交易块启动,同时订单获得批准

很长的路要走,对吧?

在这方面,我们将再次使Echo成为关注焦点。事实是,与以太坊工作流程相比,Echo确保了更快的块释放方式。让我们仔细看看时间:

00:00 —交易#1启动

00:03 —期望当前块启动,没有事务

00:06-期望事务块启动并获得批准,您必须再次尝试事务。就发送用户签名消息的请求比以太坊的阻止花费更多的时间,我们假设为此花费了10秒钟以上

00:18 —期待即将到来的交易,没有交易

00:21 —下一个交易块启动,同时订单得到批准

您可以在下面找到有关如何将0x DEX项目迁移到Echo的技术细节。

在研究Echo的体系结构时,我们考虑了大量的技术,机制和其他项目。那是因为我们想选择任何人都熟悉的基于价值的,直观的技术和方法。我们还希望最终减少那些希望进入Echo世界的人的障碍,因此我们尽了最大努力确保学习曲线不高。

以下是我们选择实施的一些机制:

  • 帐户昵称,而不是复杂的地址;
  • 智能合约费用池机制,允许使用智能合约通话,但以池余额为代价;
  • 快速的交易确认时间,分叉概率极低;
  • 参与整个网络中授予每个帐户的区块创建过程。无需在采矿设备和平衡堆上浪费大量资金

果然,没有在其网络上构建的应用程序,区块链就不可能存在。这就是为什么我们决定使Echo及其界面对开发人员尽可能简单明了。这是促使我们构建自己的x64虚拟机的关键因素。

该解决方案将使开发人员能够使用他们已经熟悉的语言在Echo上创建dApp。到目前为止,Echo支持C ++,并且我们将添加Rust和Go,从而从整体上扩展虚拟机和Echo功能。

但是,考虑到大多数基于区块链和基于智能合约的应用程序都是基于Solidity构建的,我们决定先为已经熟悉以太坊的社区改编和优化Echo接口。因此,我们专注于提供与以太坊兼容的环境,该环境只需进行最小的更改即可将应用程序从以太坊迁移到Echo。这种方法将消除对以太坊和Solidity熟悉的开发人员的技术障碍,同时让他们使用自己的实用工具包来开发惊人的新应用程序。

如果不先尝试就很难判断应用程序界面,方法或技术的便利性。这就是为什么我们深入研究迁移过程,使自己陷入一个完全陌生的代码中的原因。在这里,我们要花一点时间感谢0x开发团队提供的清晰优质的源代码。

这是我们开始时的内容:

  • 三个原始的0x存储库,其中包括一个前端代码,一个区块链和一个包含各种库的monorepo;
  • Echo Bridge应用程序 :类似于原始0x中使用的Metamask的Chrome扩展程序
  • Echojs-lib库,用于与Echo节点进行通信;
  • Echo节点的本机WS接口;
  • 一堆熟练的开发人员和两倍多的手可以制作。

以下是我们在迁移过程中面临的问题:

  1. 完全不同的区块链界面;
  2. 基于账户的区块链模型,需要初始账户注册。

为了解决这两个问题,我们采用了Echo Bridge并在其中开发了一个附加接口。该接口实现了Metamask扩展提供的类似方法,同时隐藏了后台查询处理的整个逻辑。您可以在此处了解有关如何使用Echo Bridge扩展的更多信息:

在连接了Echo Bridge的页面上覆盖ethereum对象并不是一种典型的行为,这就是为什么我们构建了一个特殊的附加组件来启动此过程的原因。该加载项打包在echo-web3库中。这样,将基于以太坊的应用程序连接到Echo网络的过程就变成了将echo-web3库添加到依赖项,然后初始化通过echo-web3初始化覆盖的方法:

typescript

import { EchoPolyfill } from 'echo-web3';

...

await EchoPolyfill();

...

Voilà:只需使用几行代码即可完成前端迁移到Echo的任务!该应用程序开始使用Echo网络连接的帐户,现在将其视为以太坊地址,通过Bridge建立并签署交易,同时将其视为Metamask

该应用程序的后端直接通过RPC请求与区块链进行通信。重建很大一部分现有的echojs-lib交互是不合理的,而且过于复杂以至于无法满足我们的目标。相反,我们构建了一个额外的实用程序服务器,该服务器提供了类似于以太坊的界面,并将请求转换为与Echo兼容的格式。

我们应该注意,该实用程序是使用NodeJS创建的,仅证明了这种集成的可能性。后来,我们向区块链路线图添加了为本地节点开发与以太坊API兼容的接口的任务。

可以在此处找到该实用程序的实现。

这种方法的主要优点是,无需对应用程序的后端代码进行任何更改,只需进行一些配置更新即可。

这项工作几乎完成了。前端和后端都链接到Echo网络,并且与区块链帐户配合良好。最后一项任务是将系统的智能合约安全地部署到以太坊网络。通过使用相同的RPC适配器,我们配置了与Echo的连接。智能合约部署过程需要事务签名,因此我们完成了echo-web3库并将其集成到智能合约管理机制中。

一切准备就绪,可将智能合约部署到网络。但是,研究了智能合约的代码后,我们意识到在10行代码的限制下我们无法做到这一点。主要问题在于,智能合约使用了ecrecover方法,该方法可以验证和还原原始地址。地址私钥用于签名数据。整个机制基于以太坊网络上使用的ECDSA签名方案系列。但是,Echo协议利用了不支持公钥恢复的EdDSA签名方案。这就是为什么不能正确使用ecrecover机制的原因。

EIP-0001成为该问题的解决方案。您可以在此处了解更多信息。

最终,我们实现了该方法,并建立了与0x智能合约的连接。智能合约已成功部署在Echo网络中。我们将这些智能合约的地址安装到了系统的配置文件中,这使我们能够始终如一地启动0x应用程序。

可以在此处找到经过稍微修改的应用程序版本(我们已经更新了一些标题和图片)。

启动应用程序之前,请确保已安装Echo Bridge扩展

如您所见,将以太坊dApp迁移到Echo现在是一项快速而轻松的任务。它带来了新的令人兴奋的机会,并且肯定会促进全球区块链的采用。

如果您有任何疑问或建议,请随时在下面发表评论。

来源

What do you think?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Loading…

0

Comments

0 comments

Lutrija u kojoj nitko ne gubi

现在是瓜季节吗?