区块链产业库
所有的企业和资源

[原创]Qitmeer Network 周报(2020/6/22-2020/6/28)

@阅读(5)

[原创]Qitmeer Network 周报(2020/6/22-2020/6/28) 区块链 第1张

[原创]Qitmeer Network 周报(2020/6/22-2020/6/28) 区块链 第2张

新闻动态

Qitmeer生态新增两家矿池支持:uupool.cn 和 hashpool.com, 加上原有的 666pool.cn 和 meerpool.com,共计4家矿池支持qitmeer挖矿;

项目技术进展

底层核心代码更新

  • 完成了 Medina Network 1.0 资产清算工作,并在 2.0 网络进行创世

    代码实现:https://github.com/Qitmeer/qitmeer/pull/317

  • 发布了 Medina Network 2.0 release版本—— qitmeer-0.9.0 ,协同社区顺利完成了 Medina Network 2.0 的升级工作

    代码实现:https://github.com/Qitmeer/qitmeer/releases/tag/v0.9.0-release

  • 修复了qitmeer-0.9.0 版本中 RPC API 导致某些coinbase交易hash错误的BUG,并发布了 qitmeer- 0.9.1-alpha release版本

    代码实现:https://github.com/Qitmeer/qitmeer/releases/tag/v0.9.1-alpha

  • 对BlockDAG网络同步进行了优化

    代码实现:
    https://github.com/Qitmeer/qitmeer/pull/325  

    https://github.com/Qitmeer/qitmeer/pull/324  

基础产品及开发工具更新

  • 发布了 Medina Network 2.0 网络的最新版miner

    代码实现:https://github.com/Qitmeer/qitmeer-miner/releases/tag/v0.5.0 

  • 更新了qitmeer-wallet和kahf钱包以适配Medina Network 2.0 网络,恢复转账功能

    代码实现:
    https://github.com/Qitmeer/qitmeer-wallet/pull/22  

    https://github.com/Qitmeer/qitmeer-wallet/pull/25

Qitmeer是以Block DAG技术为支撑的全球新一代公链,也是第一条专注普惠金融和伦理金融的公链。Block DAG的合作记账模型优于传统链式节点竞争记账模型,实现了安全性、开放性、公平性、可扩展性四者的合理平衡。Qitmeer采用经典POW共识和UTXO数据模型,独创了以底层币为基础价值且需审核的通证发行机制,契合了平等金融的哲学。

— END —



关注Qitmeer

社区,了解最新官方动态

[原创]Qitmeer Network 周报(2020/6/22-2020/6/28) 区块链 第3张

官网:https://www.qitmeer.io


[原创]Qitmeer Network 周报(2020/6/22-2020/6/28) 区块链 第4张

您可关注微博:Qitmeer官博

https://weibo.com/u/6927472999


[原创]Qitmeer Network 周报(2020/6/22-2020/6/28) 区块链 第5张

Facebook用户可直接访问:

https://www.facebook.com/QitmeerNetwork


[原创]Qitmeer Network 周报(2020/6/22-2020/6/28) 区块链 第6张

Qitmeer全球社群:

 https://t.me/QitmeerGroup

[原创]Qitmeer Network 周报(2020/6/22-2020/6/28) 区块链 第7张

在Twitter上关注@Qitmeer Network


BeeChat:

https://t.beechat.io/b6fea4fa0835477f8118d517ff96a208

Instagram:@Qitmeer

Youtube:@Qitmeer


了解更多请加入Qitmeer社群

扫描二维码

进入官方社群

[原创]Qitmeer Network 周报(2020/6/22-2020/6/28) 区块链 第7张
[原创]Qitmeer Network 周报(2020/6/22-2020/6/28) 区块链 第9张
[原创]Qitmeer Network 周报(2020/6/22-2020/6/28) 区块链 第10张

IBM报告丨借区块链之力促进全球贸易(附下载)

@阅读(3)

IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第1张

IBM的这份报告主要介绍以下方面相关的洞察:

1、当前与价值创造相关的区块链格局和期望;

2、为何区块链中的可信市场能够促进数据驱动的全球经济;

3、如何建立和监管互联的全球网络。


关注BlockMania后台回复「IBM」或者点击文末「阅读原文」(提取码:8n9t)即可获取完整报告。


引言


新冠病毒疫情凸显出全世界互联互通的重要性。但是,这次危机也暴露出,迫切需要加强支撑全球经济的体系的可持续性和弹性,对于中小企业和全球价值链而言尤其如此。


英国国际商会(ICC)认为,拥有强大数字基础设施的国家或地区能够更有效地应对业务中断。数字化是全球头等优先大事,在新冠病毒疫情危机期间尤为明显。


在「借区块链之力促进全球贸易:如何从值得信任、互联互通的市场中释放价值」调研报告中,IBM商业价值研究院提供了一系列证据说明为什么需要进一步实现贸易数字化。本报告强调了值得信任的数据在全球市场中的重要作用。


以下为本报告节选

IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第2张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第3张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第4张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第5张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第6张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第7张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第8张


BlockMania是区块链咨询智库,旨在将区块链行业最深度的认知和思考带给行业与公众。如同区块链一样,我们认为每一个idea都有成为连接另外的idea而成为节点的可能性,因此我们要搭建一个将idea从点连接成线,从线汇聚成网络的平台。


在过去的一年里,围绕区块链市场、技术、应用等话题已举办多场高质量线上AMA活动,欢迎关注。


IBM报告丨借区块链之力促进全球贸易(附下载)

@阅读(2)

IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第1张

IBM的这份报告主要介绍以下方面相关的洞察:

1、当前与价值创造相关的区块链格局和期望;

2、为何区块链中的可信市场能够促进数据驱动的全球经济;

3、如何建立和监管互联的全球网络。


关注BlockMania后台回复「IBM」或者点击文末「阅读原文」(提取码:8n9t)即可获取完整报告。


引言


新冠病毒疫情凸显出全世界互联互通的重要性。但是,这次危机也暴露出,迫切需要加强支撑全球经济的体系的可持续性和弹性,对于中小企业和全球价值链而言尤其如此。


英国国际商会(ICC)认为,拥有强大数字基础设施的国家或地区能够更有效地应对业务中断。数字化是全球头等优先大事,在新冠病毒疫情危机期间尤为明显。


在「借区块链之力促进全球贸易:如何从值得信任、互联互通的市场中释放价值」调研报告中,IBM商业价值研究院提供了一系列证据说明为什么需要进一步实现贸易数字化。本报告强调了值得信任的数据在全球市场中的重要作用。


以下为本报告节选

IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第2张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第3张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第4张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第5张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第6张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第7张
IBM报告丨借区块链之力促进全球贸易(附下载) 区块链 第8张


BlockMania是区块链咨询智库,旨在将区块链行业最深度的认知和思考带给行业与公众。如同区块链一样,我们认为每一个idea都有成为连接另外的idea而成为节点的可能性,因此我们要搭建一个将idea从点连接成线,从线汇聚成网络的平台。


在过去的一年里,围绕区块链市场、技术、应用等话题已举办多场高质量线上AMA活动,欢迎关注。


干货丨一文了解自动化做市商(AMM)的创新之路

@阅读(3)

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第1张

本文转载自巴特比资讯,作者:Chainlink,编译:隔夜的粥。文章版权归原作者所有,如有侵权请联系删除。


正文


基于自动化做市商(AMM)的去中心化交易所(DEX),已被证明是最具影响力的DeFi创新之一。它们能够为一系列不同代币创建和运行可公开获取的链上流动性。

AMM从根本上改变了用户交易加密货币的方式,与传统的订单簿交易模式不同,AMM的交易双方都是和链上流动性资产池在进行交互。流动性池允许用户以完全去中心化和非托管的方式在链上的代币之间无缝切换。而流动性提供者,则通过交易费用赚取被动收入,而交易费用基于其对资产池贡献的百分比。

在本文中,我们将探讨AMM的工作原理,剖析其固有问题,并研究解决这些关键障碍的解决方案,一些关键的点包括:

1、AMM有几种类型:恒定和做市商(CSMM)、恒定平均值做市商(CMMM)以及高级混合恒定函数做市商CFMM。


2、AMM必须克服的一些关键挑战,包括无常损失(IL)、被迫多币种敞口以及低资本效率。


3、Bancor、Uniswap、Curve以及其他项目的创新,通过提高资本效率、降低波动性风险以及提供更多的资本配置选项,使得AMM可以对更大的流动性提供商产生吸引力。


4、使用Chainlink预言机,Bancor的目标是在即将到来的V2版本中,第一次解决波动性代币的无常损失(IL)问题。


通过提供更全面的分析,我们希望能够更好地让DeFi用户了解AMM的挑战和创新,从而使去中心化流动性能够充分发挥其作为DeFi,以及更广泛金融世界的基本组成部分的潜力。

关于自动化做市商(AMM)的概述

所谓做市商(MM),他们是负责为交易所提供流动性,同时进行价格操作的实体。这是通过MM从自己的账户买卖资产来实现的,而他们的目的是为了盈利,由于他们的交易活动为其它交易者创造了流动性,这降低了大宗交易的滑点。

而自动化做市商(AMM),使用算法「机器人」在DeFi等电子市场中模拟这些价格行为。虽然存在不同的去中心化交易所设计,但基于AMM的DEX始终实现了最大的流动性以及最高的日均交易量。

目前,恒定函数做市商(CFMM)是AMM中最受欢迎的一类,它们被应用于实现数字资产的去中心化交换。这些AMM交易所基于一个常数函数,即交易对的综合资产储备必须保持不变。在非托管AMM中,交易对的用户存款集中在一个智能合约中,任何交易者都可以利用该合约获得代币互换流动性。因此,用户根据智能合约(集合资产)进行交易,而不是直接与交易对手(如订单交易)进行交易。

自2017年以来,市场上已出现了三种恒定函数做市商的初步设计。

第一个出现的类型是恒定乘积做市商(CPMM),其在Bancor和Uniswap中得到普及。CPMM基于函数x*y=k,该函数根据每个代币的可用数量(流动性)确定两种代币的价格范围。当代币X的供给增加时,Y的代币供给必须减少,反之亦然,以保持恒定的乘积K。在绘制这个函数时,结果呈现出来的是一个双曲线,流动性总是可用的,但价格会越来越高,两端接近无穷大。

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第2张

一个恒定乘积做市商(CPMM)的可视化形象

来源:Dmitriy Berenzon

第二种类型是恒定和做市商(CSMM),它是零滑动交易的理想选择,但它不能提供无限的流动性。恒定和做市商(CSMM)遵循公式x+y=k,在绘制它时,创建的是一条直线。不幸的是,如果代币之间的链外参考价格不是1:1,那么这种设计允许套利者耗尽其中一种储备资产。这种情况将摧毁流动性池的一方,迫使流动性提供者承受损失,并使得交易者不再有流动性。因此,恒定和做市商(CSMM)并不是一个常见的AMM模型。


干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第3张

一个恒定和做市商(CSMM)的可视化形象

来源:Dmitriy Berenzon

第三种类型是恒定平均值做市商(CMMM),它允许创建可拥有两个以上代币,并在标准50/50分布之外加权的AMM。在这种模型中,每个储备资产的加权几何平均数保持不变。对于有三种资产的流动性池,它的公式如下:(x*y*z)^(⅓)=k。


而随着AMM技术的发展,我们看到了高级混合恒定函数做市商CFMM的出现,它结合了多种函数和参数,以实现特定的行为,如调整流动性提供者的风险敞口或减少交易者的价格滑点。

例如,Curve AMM 结合使用CPMM和CSMM来创建更密集的流动性,从而降低给定交易范围内的滑点。而它呈现出来的是一个双曲线(蓝线),它为大多数交易返回线性汇率,而对较大交易返回指数价格。

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第4张

来源:Curve白皮书

本文的其余部分,将主要关注不同的AMM设计,这些设计旨在解决AMM的关键挑战。尽管DeFi的第一代AMM资产池在过去两年中经历了广泛的增长,但仍存在一些阻碍它们广泛采用的障碍,包括无常损失(IL)、低资本效率以及多代币风险。


阻碍AMM的固有问题


1、无常损失(IL)

向AMM池提供流动性的用户,他们所面临的主要及最常见的未知风险是无常损失(IL),即用户在AMM中存入代币与简单地将代币存放在钱包中,会出现价值差异。当AMM内代币的市场价格向任何方向偏离时,就会出现这种损失。由于AMM不会自动调整汇率,套利者需要买入定价过低的资产或卖出定价过高的资产,直到AMM提供的价格与外部市场的整个市场价格相匹配。套利者从流动性提供者的口袋里抽走了利润,从而造成了损失。


干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第5张

自动化做市商(AMM)DEX系统中出现无常损失的情况

在上面的例子中,AMM中经历的无常损失,是由于其他交易所的交易活动而导致ETH市场价格的变化造成的。AMM对这种外部价格变化的内部反应,是重新调整资产池中的汇率,使之与外部市场的汇率相匹配。在将ETH换成BNT的重新平衡过程中,AMM的总储备金略有下降。


而之所以称其为「无常损失」,是因为只要AMM中的代币的相对价格恢复到其原始值,这种损失就会消失,并且流动性提供者会将其挣得的费用保持为利润。然而,这种情况是很少见的,这意味着大多数流动性提供者(LP)遭受的「无常损失」超过了它们产生的交易费用。下图显示了在考虑交易费用之前,向ETH-DAI AMM池提供流动性时经历的「无常损失」。

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第6张

因ETH价格变化而产生的「无常损失」

2、多代币敞口

AMM通常要求流动性提供者(LP)存放两种不同的代币,以在交易双方提供相等的流动性。因此,流动性提供者(LP)无法将其长期风险敞口保持在单一代币上,而是必须通过持有额外的ERC20储备资产来分割其敞口。拥有大量一种代币的团队,或希望提供流动性的个人持有者,被迫购买另一种资产才能提供流动性,从而减少他们在资产池基础代币中的持有量,并增加对另一项资产的敞口。


3、低资本效率的问题

AMM因为需要大量的流动性来达到与基于订单簿交易所相同的水平,而备受批评。这是因为,只有在定价曲线开始呈指数变化时,AMM流动性的很大一部分才可用。因此,由于经历了极大的滑点,大多数流动性将永远不会被理性交易者所使用。


AMM流动性提供者无法控制向交易者提供的价格点,这导致一些人将AMM称为「懒惰的流动性」,即未充分利用和供应不足。同时,基于订单簿交易所的做市商,可以精确控制他们想买卖代币的价格点。这导致了非常高的资本效率,但同时需要积极参与和监督流动性供应。


改进AMM方案


针对第一代AMM存在的许多限制,一些创新设计模型正试图解决这些问题。

1、高资本效率和低滑点AMM

如前一节所述,混合CFMM使得只有当流动性池被推到极限时,汇率曲线基本上是线性的和抛物线型的,这种曲线可以实现极低的滑点交易。流动性提供者赚取更多的费用(尽管每笔交易的费用较低),因为资本的使用效率更高,而套利者仍从重新平衡资金池中获利。


Curve提供了具有相对稳定的1:1汇率的代币之间的低滑点交易服务,这意味着它的解决方案主要是为稳定币设计的,尽管他们最近推出了对封装比特币代币的支持(例如renBTC和wBTC)。

而Bancor V2通过一个类似的机制,将这种低滑点模型扩展到波动性资产,动态更新储备权重,以1:1的比率保持储备价值。在共同价格区域内,流动性可以被放大,同时保留套利者重新平衡资金池的重要动机。

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第7张

2、减少无常损失

Bancor的目标,是在即将发布的V2版本中率先解决波动性代币的无常损失问题。Bancor V2通过使用锚定流动性储备来降低无常损失的风险,它保持其AMM储备的相对价值不变。直到最近,这仅是通过保持恒定1:1价格比率的镜像资产对完成的。而Bancor V2则是使用Chainlink预言机将这一概念扩展到可变汇率的资产。随着流动性提供者的风险降低,这样的解决方案将是在资产管理系统中利用非稳定数字资产的重大突破。


通过使用Chainlink预言机,即使由于外部市场价格变化导致代币的价格出现差异,Bancor V2资产池也能够维持准确的汇率。预言机提供定价更新来调整AMM的权重,使内部汇率与外部市场价格相匹配,而不是套利者来修复汇率。这样做的好处是,套利者不再以无常损失的形式从流动性提供者手中夺走价值。

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第8张

Bancor V2中的市场价格变化

以及它如何使用Chainlink预言机消除无常损失。

取而代之的是,套利者仅需要平衡AMM池中的代币分配以响应代币交易。Bancor V2总是鼓励回归平衡,因为在储备池恢复到50/50权重之前,低权重储备的流动性提供者将获得更高的ROI。总的来说,用户和代币团队都可以对自己的存款流动性更有信心,因为他们的存款流动性可以从交易费用中获得利润,而不会因为正常的市场波动而损失价值。


3、多代币敞口

Uniswap V2允许将任何ERC20代币与任何其他ERC20代币合成一个资产池,从而消除了流动性提供商对ETH的要求。这使流动性提供者可以灵活地维持ERC20代币头寸的更多样化组合,并为交易创造更多潜在的资产池组合,以从中提取流动性。


Bancor V2使流动性提供者能够保持对单一代币的敞口,从而取消了双边流动性存款要求。通过Chainlink预言机锚定流动性储备,用户可以持有AMM中任何代币的敞口,可以是100%任何品种的ERC20代币,或者是它们与BNT之间的任何百分比分布。这种设置可能会吸引想要在AMM上提供低风险流动性,而无需购买额外储备资产的代币团队和投资基金。


AMM的创新之路


从Bancor到Uniswap,再到Curve等等,AMM技术正在为任何数字资产的即时流动性提供新的原语。AMM不仅会在以前缺乏流动性的市场中引发价格行动,而且会以高度安全、可全球访问且非托管的方式进行。

截至目前,AMM已经取得了令人瞩目的增长,而围绕提高资本效率、减少无常损失等方面的创新,提供了必要的基础设施,以吸引来自传统市场的更大的流动性提供者。随着资金更易于定制以及可更好地利用,同时降低了下行风险,DeFi已做好了大量资本注入的准备。


干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第9张


BlockMania是区块链咨询智库,旨在将区块链行业最深度的认知和思考带给行业与公众。如同区块链一样,我们认为每一个idea都有成为连接另外的idea而成为节点的可能性,因此我们要搭建一个将idea从点连接成线,从线汇聚成网络的平台。


在过去的一年里,围绕区块链市场、技术、应用等话题已举办多场高质量线上AMA活动,欢迎关注。

干货丨一文了解自动化做市商(AMM)的创新之路

@阅读(2)

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第1张

本文转载自巴特比资讯,作者:Chainlink,编译:隔夜的粥。文章版权归原作者所有,如有侵权请联系删除。


正文


基于自动化做市商(AMM)的去中心化交易所(DEX),已被证明是最具影响力的DeFi创新之一。它们能够为一系列不同代币创建和运行可公开获取的链上流动性。

AMM从根本上改变了用户交易加密货币的方式,与传统的订单簿交易模式不同,AMM的交易双方都是和链上流动性资产池在进行交互。流动性池允许用户以完全去中心化和非托管的方式在链上的代币之间无缝切换。而流动性提供者,则通过交易费用赚取被动收入,而交易费用基于其对资产池贡献的百分比。

在本文中,我们将探讨AMM的工作原理,剖析其固有问题,并研究解决这些关键障碍的解决方案,一些关键的点包括:

1、AMM有几种类型:恒定和做市商(CSMM)、恒定平均值做市商(CMMM)以及高级混合恒定函数做市商CFMM。


2、AMM必须克服的一些关键挑战,包括无常损失(IL)、被迫多币种敞口以及低资本效率。


3、Bancor、Uniswap、Curve以及其他项目的创新,通过提高资本效率、降低波动性风险以及提供更多的资本配置选项,使得AMM可以对更大的流动性提供商产生吸引力。


4、使用Chainlink预言机,Bancor的目标是在即将到来的V2版本中,第一次解决波动性代币的无常损失(IL)问题。


通过提供更全面的分析,我们希望能够更好地让DeFi用户了解AMM的挑战和创新,从而使去中心化流动性能够充分发挥其作为DeFi,以及更广泛金融世界的基本组成部分的潜力。

关于自动化做市商(AMM)的概述

所谓做市商(MM),他们是负责为交易所提供流动性,同时进行价格操作的实体。这是通过MM从自己的账户买卖资产来实现的,而他们的目的是为了盈利,由于他们的交易活动为其它交易者创造了流动性,这降低了大宗交易的滑点。

而自动化做市商(AMM),使用算法「机器人」在DeFi等电子市场中模拟这些价格行为。虽然存在不同的去中心化交易所设计,但基于AMM的DEX始终实现了最大的流动性以及最高的日均交易量。

目前,恒定函数做市商(CFMM)是AMM中最受欢迎的一类,它们被应用于实现数字资产的去中心化交换。这些AMM交易所基于一个常数函数,即交易对的综合资产储备必须保持不变。在非托管AMM中,交易对的用户存款集中在一个智能合约中,任何交易者都可以利用该合约获得代币互换流动性。因此,用户根据智能合约(集合资产)进行交易,而不是直接与交易对手(如订单交易)进行交易。

自2017年以来,市场上已出现了三种恒定函数做市商的初步设计。

第一个出现的类型是恒定乘积做市商(CPMM),其在Bancor和Uniswap中得到普及。CPMM基于函数x*y=k,该函数根据每个代币的可用数量(流动性)确定两种代币的价格范围。当代币X的供给增加时,Y的代币供给必须减少,反之亦然,以保持恒定的乘积K。在绘制这个函数时,结果呈现出来的是一个双曲线,流动性总是可用的,但价格会越来越高,两端接近无穷大。

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第2张

一个恒定乘积做市商(CPMM)的可视化形象

来源:Dmitriy Berenzon

第二种类型是恒定和做市商(CSMM),它是零滑动交易的理想选择,但它不能提供无限的流动性。恒定和做市商(CSMM)遵循公式x+y=k,在绘制它时,创建的是一条直线。不幸的是,如果代币之间的链外参考价格不是1:1,那么这种设计允许套利者耗尽其中一种储备资产。这种情况将摧毁流动性池的一方,迫使流动性提供者承受损失,并使得交易者不再有流动性。因此,恒定和做市商(CSMM)并不是一个常见的AMM模型。


干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第3张

一个恒定和做市商(CSMM)的可视化形象

来源:Dmitriy Berenzon

第三种类型是恒定平均值做市商(CMMM),它允许创建可拥有两个以上代币,并在标准50/50分布之外加权的AMM。在这种模型中,每个储备资产的加权几何平均数保持不变。对于有三种资产的流动性池,它的公式如下:(x*y*z)^(⅓)=k。


而随着AMM技术的发展,我们看到了高级混合恒定函数做市商CFMM的出现,它结合了多种函数和参数,以实现特定的行为,如调整流动性提供者的风险敞口或减少交易者的价格滑点。

例如,Curve AMM 结合使用CPMM和CSMM来创建更密集的流动性,从而降低给定交易范围内的滑点。而它呈现出来的是一个双曲线(蓝线),它为大多数交易返回线性汇率,而对较大交易返回指数价格。

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第4张

来源:Curve白皮书

本文的其余部分,将主要关注不同的AMM设计,这些设计旨在解决AMM的关键挑战。尽管DeFi的第一代AMM资产池在过去两年中经历了广泛的增长,但仍存在一些阻碍它们广泛采用的障碍,包括无常损失(IL)、低资本效率以及多代币风险。


阻碍AMM的固有问题


1、无常损失(IL)

向AMM池提供流动性的用户,他们所面临的主要及最常见的未知风险是无常损失(IL),即用户在AMM中存入代币与简单地将代币存放在钱包中,会出现价值差异。当AMM内代币的市场价格向任何方向偏离时,就会出现这种损失。由于AMM不会自动调整汇率,套利者需要买入定价过低的资产或卖出定价过高的资产,直到AMM提供的价格与外部市场的整个市场价格相匹配。套利者从流动性提供者的口袋里抽走了利润,从而造成了损失。


干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第5张

自动化做市商(AMM)DEX系统中出现无常损失的情况

在上面的例子中,AMM中经历的无常损失,是由于其他交易所的交易活动而导致ETH市场价格的变化造成的。AMM对这种外部价格变化的内部反应,是重新调整资产池中的汇率,使之与外部市场的汇率相匹配。在将ETH换成BNT的重新平衡过程中,AMM的总储备金略有下降。


而之所以称其为「无常损失」,是因为只要AMM中的代币的相对价格恢复到其原始值,这种损失就会消失,并且流动性提供者会将其挣得的费用保持为利润。然而,这种情况是很少见的,这意味着大多数流动性提供者(LP)遭受的「无常损失」超过了它们产生的交易费用。下图显示了在考虑交易费用之前,向ETH-DAI AMM池提供流动性时经历的「无常损失」。

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第6张

因ETH价格变化而产生的「无常损失」

2、多代币敞口

AMM通常要求流动性提供者(LP)存放两种不同的代币,以在交易双方提供相等的流动性。因此,流动性提供者(LP)无法将其长期风险敞口保持在单一代币上,而是必须通过持有额外的ERC20储备资产来分割其敞口。拥有大量一种代币的团队,或希望提供流动性的个人持有者,被迫购买另一种资产才能提供流动性,从而减少他们在资产池基础代币中的持有量,并增加对另一项资产的敞口。


3、低资本效率的问题

AMM因为需要大量的流动性来达到与基于订单簿交易所相同的水平,而备受批评。这是因为,只有在定价曲线开始呈指数变化时,AMM流动性的很大一部分才可用。因此,由于经历了极大的滑点,大多数流动性将永远不会被理性交易者所使用。


AMM流动性提供者无法控制向交易者提供的价格点,这导致一些人将AMM称为「懒惰的流动性」,即未充分利用和供应不足。同时,基于订单簿交易所的做市商,可以精确控制他们想买卖代币的价格点。这导致了非常高的资本效率,但同时需要积极参与和监督流动性供应。


改进AMM方案


针对第一代AMM存在的许多限制,一些创新设计模型正试图解决这些问题。

1、高资本效率和低滑点AMM

如前一节所述,混合CFMM使得只有当流动性池被推到极限时,汇率曲线基本上是线性的和抛物线型的,这种曲线可以实现极低的滑点交易。流动性提供者赚取更多的费用(尽管每笔交易的费用较低),因为资本的使用效率更高,而套利者仍从重新平衡资金池中获利。


Curve提供了具有相对稳定的1:1汇率的代币之间的低滑点交易服务,这意味着它的解决方案主要是为稳定币设计的,尽管他们最近推出了对封装比特币代币的支持(例如renBTC和wBTC)。

而Bancor V2通过一个类似的机制,将这种低滑点模型扩展到波动性资产,动态更新储备权重,以1:1的比率保持储备价值。在共同价格区域内,流动性可以被放大,同时保留套利者重新平衡资金池的重要动机。

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第7张

2、减少无常损失

Bancor的目标,是在即将发布的V2版本中率先解决波动性代币的无常损失问题。Bancor V2通过使用锚定流动性储备来降低无常损失的风险,它保持其AMM储备的相对价值不变。直到最近,这仅是通过保持恒定1:1价格比率的镜像资产对完成的。而Bancor V2则是使用Chainlink预言机将这一概念扩展到可变汇率的资产。随着流动性提供者的风险降低,这样的解决方案将是在资产管理系统中利用非稳定数字资产的重大突破。


通过使用Chainlink预言机,即使由于外部市场价格变化导致代币的价格出现差异,Bancor V2资产池也能够维持准确的汇率。预言机提供定价更新来调整AMM的权重,使内部汇率与外部市场价格相匹配,而不是套利者来修复汇率。这样做的好处是,套利者不再以无常损失的形式从流动性提供者手中夺走价值。

干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第8张

Bancor V2中的市场价格变化

以及它如何使用Chainlink预言机消除无常损失。

取而代之的是,套利者仅需要平衡AMM池中的代币分配以响应代币交易。Bancor V2总是鼓励回归平衡,因为在储备池恢复到50/50权重之前,低权重储备的流动性提供者将获得更高的ROI。总的来说,用户和代币团队都可以对自己的存款流动性更有信心,因为他们的存款流动性可以从交易费用中获得利润,而不会因为正常的市场波动而损失价值。


3、多代币敞口

Uniswap V2允许将任何ERC20代币与任何其他ERC20代币合成一个资产池,从而消除了流动性提供商对ETH的要求。这使流动性提供者可以灵活地维持ERC20代币头寸的更多样化组合,并为交易创造更多潜在的资产池组合,以从中提取流动性。


Bancor V2使流动性提供者能够保持对单一代币的敞口,从而取消了双边流动性存款要求。通过Chainlink预言机锚定流动性储备,用户可以持有AMM中任何代币的敞口,可以是100%任何品种的ERC20代币,或者是它们与BNT之间的任何百分比分布。这种设置可能会吸引想要在AMM上提供低风险流动性,而无需购买额外储备资产的代币团队和投资基金。


AMM的创新之路


从Bancor到Uniswap,再到Curve等等,AMM技术正在为任何数字资产的即时流动性提供新的原语。AMM不仅会在以前缺乏流动性的市场中引发价格行动,而且会以高度安全、可全球访问且非托管的方式进行。

截至目前,AMM已经取得了令人瞩目的增长,而围绕提高资本效率、减少无常损失等方面的创新,提供了必要的基础设施,以吸引来自传统市场的更大的流动性提供者。随着资金更易于定制以及可更好地利用,同时降低了下行风险,DeFi已做好了大量资本注入的准备。


干货丨一文了解自动化做市商(AMM)的创新之路 区块链 第9张


BlockMania是区块链咨询智库,旨在将区块链行业最深度的认知和思考带给行业与公众。如同区块链一样,我们认为每一个idea都有成为连接另外的idea而成为节点的可能性,因此我们要搭建一个将idea从点连接成线,从线汇聚成网络的平台。


在过去的一年里,围绕区块链市场、技术、应用等话题已举办多场高质量线上AMA活动,欢迎关注。

[原创]区块链+版权  原创作者的春天!

@阅读(2)

[原创]区块链+版权  原创作者的春天! 区块链 第1张

点击蓝字 关注我们


[原创]区块链+版权  原创作者的春天! 区块链 第2张


6月28日,广州互联网法院依法审理了“捷声文化”抄袭一案。被告在未经原创作者企鹅号“蜀山笔侠”许可的情况下,擅自通过其注册和运营的自媒体账号“捷声文化”全文复制、转载“蜀山笔侠”的原创文章,严重侵犯原创作者享有的信息网络传播权。


互联网科技时代,让很多有才华的创作者们有了自我展示的舞台:短视频、文章、音乐、表情包、小段子……百花齐放各显风姿。


但同时也滋生了黑暗中的“邪恶一派”:抄袭、洗稿、盗用…隐藏在在互联网保护屏障后,那些“小偷、强盗”不费吹灰之力就可以窃取别人的成果来牟利。



而原创者想维权,则需要通过重重关卡:你要证明你是你、如何证明你证明的你是你是真的你……


创作者面对网络的无孔不入和巨大信息流,无奈又绝望。


1

收费高:版权登记的价格偏高,通常登记单件作品的市场价得500多元

2

效率低:传统版权登记官方的审核一般需要20个工作日,而网络时代的特点是“产量多、传播快”

3

维权难:平台投诉手续的复杂,法律维护成本更高……原创者因此只能选择保持沉默


区块链技术的出现改变了以往我们对版权保护的认知,也被广泛提及应用于版权保护方面。


目前,蜂巢基于区块链技术的版权平台,是真正以区块链、大数据、人工智能等技术为支撑,从版权登记、安全交付,图片溯源等各环节都有效解决原创保护的知识产权平台。


那么我们可以根据区块链的特点,结合版权保护的各个环节分别去理解下面三个方面的问题。


如何自动化登记版权?


对于原创作品的登记,蜂巢区块链技术原创保护平台把电子凭证与作者信息、原创内容等数据一次性打包并存储到区块链上。而且,区块链可以实现多节点进入数据中心去进行注册登记的模式,方便快捷效率。


如何验证版权持有人?


区块链技术大量使用密码学技术,版权持有者在把作品写入区块链时,用自己的私钥对作品进行了数字签名,第三方可以用版权持有者的公钥对数字签名进行验证,验证通过,则表明此作品是版权持有者所有。


如何追溯版权最源头?


蜂巢区块链原创保护平台将记录版权所有的使用和交易环节,区块链所记录的版权信息公开、透明、可追溯、无法篡改,可以看到并追溯它们的全过程,直至最源头的版权痕迹。


结语


区块链技术的出现,给原创版权保护带来了新希望,同时也让盗版无所藏匿。蜂巢区块链技术原创保护平台更是为广大原创作者提供维权的渠道,区块链技术在版权方面的广泛应用将会是这些侵权者致命的一击。


[原创]区块链+版权  原创作者的春天! 区块链 第3张

[原创]区块链+版权  原创作者的春天!

@阅读(2)

[原创]区块链+版权  原创作者的春天! 区块链 第1张

点击蓝字 关注我们


[原创]区块链+版权  原创作者的春天! 区块链 第2张


6月28日,广州互联网法院依法审理了“捷声文化”抄袭一案。被告在未经原创作者企鹅号“蜀山笔侠”许可的情况下,擅自通过其注册和运营的自媒体账号“捷声文化”全文复制、转载“蜀山笔侠”的原创文章,严重侵犯原创作者享有的信息网络传播权。


互联网科技时代,让很多有才华的创作者们有了自我展示的舞台:短视频、文章、音乐、表情包、小段子……百花齐放各显风姿。


但同时也滋生了黑暗中的“邪恶一派”:抄袭、洗稿、盗用…隐藏在在互联网保护屏障后,那些“小偷、强盗”不费吹灰之力就可以窃取别人的成果来牟利。



而原创者想维权,则需要通过重重关卡:你要证明你是你、如何证明你证明的你是你是真的你……


创作者面对网络的无孔不入和巨大信息流,无奈又绝望。


1

收费高:版权登记的价格偏高,通常登记单件作品的市场价得500多元

2

效率低:传统版权登记官方的审核一般需要20个工作日,而网络时代的特点是“产量多、传播快”

3

维权难:平台投诉手续的复杂,法律维护成本更高……原创者因此只能选择保持沉默


区块链技术的出现改变了以往我们对版权保护的认知,也被广泛提及应用于版权保护方面。


目前,蜂巢基于区块链技术的版权平台,是真正以区块链、大数据、人工智能等技术为支撑,从版权登记、安全交付,图片溯源等各环节都有效解决原创保护的知识产权平台。


那么我们可以根据区块链的特点,结合版权保护的各个环节分别去理解下面三个方面的问题。


如何自动化登记版权?


对于原创作品的登记,蜂巢区块链技术原创保护平台把电子凭证与作者信息、原创内容等数据一次性打包并存储到区块链上。而且,区块链可以实现多节点进入数据中心去进行注册登记的模式,方便快捷效率。


如何验证版权持有人?


区块链技术大量使用密码学技术,版权持有者在把作品写入区块链时,用自己的私钥对作品进行了数字签名,第三方可以用版权持有者的公钥对数字签名进行验证,验证通过,则表明此作品是版权持有者所有。


如何追溯版权最源头?


蜂巢区块链原创保护平台将记录版权所有的使用和交易环节,区块链所记录的版权信息公开、透明、可追溯、无法篡改,可以看到并追溯它们的全过程,直至最源头的版权痕迹。


结语


区块链技术的出现,给原创版权保护带来了新希望,同时也让盗版无所藏匿。蜂巢区块链技术原创保护平台更是为广大原创作者提供维权的渠道,区块链技术在版权方面的广泛应用将会是这些侵权者致命的一击。


[原创]区块链+版权  原创作者的春天! 区块链 第3张

[原创]DALICHAIN Jun 2020 Report

@阅读(2)

[原创]DALICHAIN Jun 2020 Report 区块链 第1张
[原创]DALICHAIN Jun 2020 Report 区块链 第2张

点击蓝字关注我们

[原创]DALICHAIN Jun 2020 Report 区块链 第3张



01 技术进展

[原创]DALICHAIN Jun 2020 Report 区块链 第4张

1. 链商项目:初版开发基本完成。除商城通用功能外,基本完成对接第三方货品渠道,可以实现商品海量抓取和入库,订单返现和积分数据同步等功能。

2. 钱包优化:DALICHAIN钱包基于Google新型前端技术进行了钱包重构,让使用更流畅,让资产更安全,正式更新版预计在7月底推出。

3. 多币种钱包:达利链多币种融合外部多币种的功能接入开发中,目的是为用户同时提供低手续费的达利链上token使用,以及外部资产安全的存取。目前已完成节点部署和基础RPC操作测试。



02 市场进度

[原创]DALICHAIN Jun 2020 Report 区块链 第4张

1. DALICHAIN远程和韩国某数字货币借贷服务商沟通,为其钱包定制业务提供解决思路,目标是提供钱包APP以及对应的稳定币设计,以解决客户当前无法有效管理资产的痛点。

2. 6月份加拿大加密货币完全合法化,比特币至此正式纳入监管。加拿大新法案于6月生效,加密货币交易所和加密货币支付运营商被归类为提供金融服务的机构,加密货币在加拿大开启合法化程序。

此法案为《Regulations Amending Certain Regulations Made Under the Proceeds of Crime (Money Laundering) and Terrorist Financing Act, 2019: SOR/2019-240》(修订根据犯罪收益(洗钱)和恐怖主义融资法(2019年)制定的某些法规的法规:SOR / 2019-240)。

3. 浙江发布实施两条标准,以区块链技术破电商信任鸿沟。浙江已正式发布并实施《电子商务商品交易信息区块链存取证平台标准》和《区块链电子合同平台标准》团体标准。商品交易信息存取证平台标准运用区块链技术,引入司法机构的监管,实现对电子商务交易过程中商品交易信息的可信存取证,能有效保存商品交易信息并防止事后篡改。电子合同平台标准同样采用区块链技术,将区块链的优点和特性融入到传统电子合同平台中,开发和设计防篡改、全流程可追溯的区块链电子合同平台。



[原创]DALICHAIN Jun 2020 Report 区块链 第6张

DALICHAIN于2017年在新加坡成立,一直致力于提供企业级区块链服务,推动数字化时代的发展。


DALICHAIN拥有稳定、安全、高性能的区块链底层平台,可满足不同场景下的商业需求;自有研发团队一直专注于区块链解决方案与商业转型设计,案例已覆盖链商积分通证融合、碳资产通证化、企业供应链金融等领域;同时DALICHAIN也笃信可信资产数字化的长期愿景,持续进行数字货币钱包开发,能快速为客户提供安全可靠的半定制的钱包方案。


我们愿与各企业一起探索,共同发展,为用户和社会提供真正有价值的区块链解决方案。欢迎合作伙伴联系微信客服:blockchain-888

[原创]DALICHAIN Jun 2020 Report 区块链 第7张

飞跃计划 3

@阅读(1)

场外基金(使用天天基金APP):

操作 代码 名称 单位
买入 100032 中证红利 3
买入 100038 富国沪深300 2
买入 001469 全指金融地产 2
买入 005106 银华农业 1
买入 004616 中欧电子信息 2
买入 003834 华夏能源革新 1
买入 001051 上证50ETF 1
买入 000071 华夏恒生ETF 2

大鹏一日同风起,扶摇直上九万里


    

撸一个预言机(Oracle)服务,真香!—中篇

@阅读(1)

一、文章结构

本文将通过上、中、下三篇文章带领大家一步步开发实现一个中心化的Oracle服务,并通过一个抽奖合约演示如何使用我们的Oracle服务。文章内容安排如下:

•上篇:Oracle简介及合约实现[1]•中篇:使用go语言开发Oracle服务•下篇:抽奖合约调用Oracle服务示例

在上篇中,我们实现了一个通用的Oracle合约,其主要有一个接收用户请求的Query方法;回调用户合约的Response方法和一个供Oracle后端服务订阅的QueryInfo事件。

本篇是中篇,主要使用go语言开发实现Oracle的后端服务。

文中的Oracle服务完整代码地址:https://github.com/six-days/ethereum-oracle-service

二、服务架构

Oracle后端服务整体包含事件订阅模块查询模块回调模块,架构如下图所示。

服务开启后,首先会通过以太坊ws协议的jsonrpc,在区块链上注册事件订阅,订阅成功后开启一个for循环,接收并处理事件消息。

代码如下所示。

// start monitor oracle contract eventfunc (e *EventWatch) Start() {    if err := e.subscribeEvent(); err != nil {        return    }    e.dealEvent()}
func (e *EventWatch) dealEvent() { for { select { case err := logs.Error("[dealEvent] Subscription err: ", err) e.subscribeEvent() case vLog := // 处理查询请求并回调 go e.dealQuery(vLog) } }}

三、事件订阅

事件订阅必须使用ws协议的jsonrpc,http协议的jsonprc无法订阅事件。

事件订阅的核心是通过ethclient的SubscribeFilterLogs方法,其中query参数是订阅的过滤条件。其中

Addresses是Oracle合约地址;•Topics参数是过滤主题,是一个二维数组,这里我们的主题只指定了事件的名称。

代码如下所示。

func (e *EventWatch) subscribeEvent() error {    query := ethereum.FilterQuery{        Addresses: []common.Address{            common.HexToAddress(e.Config.OracleContractAddress),        },        Topics: [][]common.Hash{            {e.OracleABI.Events[OracelEventName].ID()},        },    }    events := make(chan types.Log)    sub, err := e.Client.SubscribeFilterLogs(context.Background(), query, events)    if err != nil {        logs.Error("[SubscribeEvent]fail to subscribe event:", err)        return err    }    e.EventChan = events    e.Subscription = sub    return nil}

四、查询模块

1、日志解析

事件日志解析我们用go-ethereum的abi模块的Unpack方法,将日志解析为我们定义好的结构体。

代码如下所示。

type OracleQueryInfo struct {    QueryId      [32]byte    Requester    common.Address    Fee          *big.Int    CallbackAddr common.Address    CallbackFUN  string    QueryData    []byte    Raw          types.Log // Blockchain specific contextual infos}
type QueryRequest struct { URL string `json:"url,omitempty"` ResponseParams []string `json:"responseParams,omitempty"`}
func (e *EventWatch) dealQuery(vLog types.Log) error { queryInfo := &OracleQueryInfo{} err := e.OracleABI.Unpack(queryInfo, OracelEventName, vLog.Data) if err != nil { return fmt.Errorf("[dealQuery] unpack event log failed:%v", err) } reqData := &QueryRequest{} if err = json.Unmarshal(queryInfo.QueryData, reqData); err != nil { return fmt.Errorf("[dealQuery] unmarshal query data failed:%v", err) }}

2、查询请求

查询请求比较简单,就是根据用户提供的url发送请求。代码如下所示。

// sendQueryRequest 根据客户端指定的查询地址发送请求func (e *EventWatch) sendQueryRequest(reqData *QueryRequest, resParamType string) (interface{}, error) {    req, err := http.NewRequest("GET", reqData.URL, nil)    if err != nil {        return nil, fmt.Errorf("[sendQueryRequest] NewRequest failed: %v", err)    }    res, err := http.DefaultClient.Do(req)    if err != nil {        return nil, fmt.Errorf("[sendQueryRequest] http get request failed: %v", err)    }    defer res.Body.Close()    body, err := ioutil.ReadAll(res.Body)    if err != nil {        return nil, fmt.Errorf("[sendQueryRequest] read response data failed: %v", err)    }    logs.Trace("[sendQueryRequest] get ", reqData.URL, " response is: ", string(body))    queryRes, err := ParseResponeData(body, reqData.ResponseParams, resParamType)    if err != nil {        return nil, err    }    return queryRes, nil}

查询可能失败,这里需要增加失败重试机制,代码比较简单,就不写出来了。

3、结果解析

这里使用go-simplejson库将查询结果进行json解析,并且提取用户指定所需要的字段,将字段转换为用户合约中回调方法接收的数据类型。

// ParseResponeData 解析链下获取到的数据,提取用户所需要的字段,并转换为对应的数据类型func ParseResponeData(repData []byte, keys []string, resParamType string) (interface{}, error) {    resData, err := simplejson.NewJson(repData)    if err != nil {        return nil, fmt.Errorf("[ParseResponeData] unmarshal response data failed:%v", err)    }
for _, paramName := range keys { resData = resData.Get(paramName) } if resData == nil { return nil, fmt.Errorf("[ParseResponeData] response data not exist request key:%v", keys) } var resValue interface{} var coverErr error switch resParamType { case "uint256": resUint64Value, coverErr := resData.Uint64() if coverErr == nil { resValue = big.NewInt(int64(resUint64Value)) }
case "bytes": resValue, coverErr = resData.Bytes() default: return nil, fmt.Errorf("[ParseResponeData] unsupport response data type %s", resParamType) } if coverErr != nil { return nil, fmt.Errorf("[ParseResponeData] response data type %s error:%v", resParamType, err) }
return resValue, nil}

五、回调模块

回调模块相对比较简单,首先将Oracle合约实例化了一个BoundContract对象,然后调用Transact方法发送交易。其中第一个参数是使用私钥实例化的一个TransactOpts对象。

TransactOpts对象中可以配置nonce、gasLimit、gasPrice等值,如果不指定,Transact方法会自己补充上。除此之外,Transact方法也会调用TransactOpts对象的Signer方法对消息进行签名。

Transact方法源码详见:https://github.com/six-days/go-ethereum/blob/master/accounts/abi/bind/base.go

回调模块代码如下所示。

// sendQueryResponse 将查询到的结果发送给客户端合约指定方法func (e *EventWatch) sendQueryResponse(res interface{}, stateCode uint64, queryInfo *OracleQueryInfo, resParamType string) error {    in := []interface{}{        queryInfo.QueryId,        queryInfo.CallbackAddr,        queryInfo.CallbackFUN,        stateCode,        res,    }    var responseName string    switch resParamType {    case "bytes":        responseName = OracelResponseBytesName    case "uint256":        responseName = OracelResponseUint256Name    default:        return fmt.Errorf("[SendQueryResponse] unsupport response data type")    }    transaction, err := e.BoundContract.Transact(e.TransactOpts, responseName, in...)    if err != nil {        return fmt.Errorf("[SendQueryResponse] Transact failed: %v", err)    }    logs.Trace("[SendQueryResponse] call back tx:", transaction.Hash().Hex())    return nil}

回调也可能失败,服务对sendQueryResponse方法的调用也增加了失败重试机制。

六、可以优化的地方

至此,我们的V1版的Oracle服务已开发完成,服务已能满足基本需求,但还有一些方面需要进一步优化,我这里列出了三点。

1、Nonce托管

在回调模块中,调用合约时,我们并没有指定发起交易账号的Nonce值,而是由Transact方法在每次发起交易时,动态计算。这就会限制我们交易的并发。

在高并发的情况下,肯定会出现多笔交易Nonce值相同的情况,后发起交易覆盖前交易,造成前交易失败。

针对这种情况,我的思路是对Nonce进行托管:

•在缓存(内存或redis等)中维护账号对应的Nonce•每次发起交易时,从缓存中获取,每获取一次,缓存中的Nonce累加1•缓存中的Nonce定期和链上进行校对和同步•对于可能出现的空洞情况,使用空交易填补

2、Gas优化

这段时间以太坊网络比较拥堵,导致手续费居高不下。对于我们Oracle服务来说,节省Gas是很重要的一个优化方向。

这里我的思路是可以从以下几个方面优化:

•引入动态GasPrice,可以从https://ethgasstation.info网站中获取实时的GasPrice•指定GasLimit,防止由于合约问题消耗过多Gas•余额检查,防止由于余额不足造成交易失败,浪费了手续费•接收回调数据的用户合约方法尽量简单,分离业务逻辑

3、支持http协议jsonrpc

有的网络节点没有开启ws服务,而使用http协议的网络jsonrpc又无法直接订阅事件。这时可以采取迂回策略,模拟事件订阅,具体思路如下:

•开启网络区块监控•监控到有新区块产生,查询区块中的日志•如果有我们Oracle合约产生的查询日志,则进入后续的查询和回调流程

大家对于优化有其他思路或疑问,欢迎留言探讨。

下篇中,我将以一个抽奖合约为示例,介绍如何使用我们开发的Oracle服务来对抽奖合约提供一个随机数。

References

[1] Oracle简介及合约实现: https://learnblockchain.cn/article/1150



文作者六天

作者主页:

https://learnblockchain.cn/people/436


撸一个预言机(Oracle)服务,真香!—中篇 区块链 第2张

区块链产业网·

建立合作联系我们