火星链 火星链
Ctrl+D收藏火星链
首页 > DAI > 正文

APP:一文读懂dApp开发神器 - Ergo 无头 dApp框架

作者:

时间:1900/1/1 0:00:00

桥接复杂链上协议与链下世界,赋予开发者构建生态之自由

作者:RobertKornacki;DenysZadorozhnyi

Ergo无头dApp框架是开发Ergo无头dApp的首选Rust框架。ErgoHDF给开发者提供了首个可移植、基于UTXO的无头dApp开发框架,此框架可应用于任何区块链。

什么是无头dApp?

无头dApp是用于开发dApp的全新技术和商业模型,它刚开始在更广泛的区块链领域中占据一席之地。简而言之,无头dApp是读取和参与链上智能合约协议的纯粹可移植自包含逻辑。

换句话说,无头dApp是一款可让复杂链上协议接触链下世界的软件,它精简的接口使任何人都可以在其上进行构建。此处的关键是,顾名思义,无头dApp没有构建于其上的前端。

无头dApp提供的是在其上构建整个去中心化生态系统的自由。由于在默认情况下,无头dApp是纯粹的,可移植的,因此可以将它们编译为任何桌面设备操作系统、移动设备操作系统或者浏览器。因为它们具有精简的接口,所以可以轻松将其集成到脚本和机器人中;因为它们具有可组合性,所以可以在应用程序中一起使用,从而可以轻松地在不同协议之间套利,或者可以形成全新的用户体验,而无需了解每个受支持的无头dApp的核心工作方式。

新入行的开发者对于开发智能合约协议的经验有限,而无头dApp在未来可以使他们仍然对dApp领域产生真正的影响。这种关注点分离的设计允许开发者在无头dApp的基础上进行构建,而无需花费大量时间来了解开发dApp的繁冗细节。

此外,无头dApp开启了全新商业模式的生态系统。无头dApp并没有让智能合约协议的创建者从成功的协议中攫取所有潜在的利润/价值,反而为前端开发者揭示了截至目前尚未利用的收入来源。通过仅将协议创建者的潜在收益分散到现在包含已开发的每个前端,我们可以从当今具有单个前端的流行dApp所产生的中心化效果上退一步。相反,我们可以激励由各种开发者/公司构建的,由众多独立前端组成的稳健生态系统,所有人都可以因改善整个生态系统而获利。

数据:年初至今近100个加密对冲基金已关闭,上半年加密基金表现逊于比特币:金色财经报道,据彭博社援引瑞士投资顾问 21e6 Capital AG 的数据报道,今年全球已有700多家加密货币基金,但自2023年初以来,已有97只基金(占13%)加密基金关闭。此外,这些加密基金上半年的平均回报率为15.2%,表现落后于比特币83.3%的涨幅。报告称,由于去年行业动荡,许多基金持有的现金比平常多。

21e6 营销和销售主管Maximilian Bruckner表示,市场中性策略的基金表现最差,1-6月平均回报率仅为6.8%。定向押注的基金平均回报率为21.9%。但表现仍落后于比特币。虽然由于受欢迎的银行合作伙伴和基金管理机构的监管不确定性,许多基金不得不放慢运营速度,但全权委托加密基金并没有面临这个问题,与此同时,量化基金更容易受到波动性市场的压制。[2023/8/5 16:19:51]

无头dApp实现了这所有功能,并且同时进一步改善了开发者的体验。

方案目标

1.??????让开发者使用无头dApp框架写出自己的链下逻辑,从而创建他们自己面向所有平台的无头dApp。

2.??????为开发者提供从ErgodApp规范到无头dApp的轻松体验,并提供更强大的保证和简单直接的实现途径。

3.??????将dApp的链下逻辑与任何前端逻辑分开,从而无论什么应用或前端在集成无头dApp时都保证了重用性。

4.??????为前端实现者提供易于使用的方法,以便轻松访问dApp协议的当前状态,而无需了解其工作原理。

5.??????通过使用新颖的设计模式为所需的输入UTXO指定BoxSpec,将为无头dApp定义和获取输入UTXO的概念进行了抽象化。

6.??????使脚本、机器人和其他软件轻松地构建在使用无头dApp框架构建的多个无头dApp之上,从而提供了标准化的接口和一定程度的可组合性。

Web3社交数据门户网站Port3 Network完成300万美元种子轮融资:2月3日消息,Web3 社交数据门户网站 Port3 Network 完成 300 万美元种子轮融资,KuCoin Ventures 领投,参投方包括 Jump Crypto, SNZ, Block Infinity, Dragon Roark, ViaBTC, Cryptonite, Lapin Digital, Cogitent,Momentum6。

Port3 Network成立于2022年,是一个用于获取和聚合 Web3 社交数据的门户网站,Port3 的 SoQuest 应用允许项目能够激励用户通过任务和奖励分享他们的数据来引流。(The Block)[2023/2/3 11:44:46]

理解Ergo无头dApp框架

在使用无头dApp框架之前,有许多重要的术语和概念需要理解。无头dApp框架的总体设计基于EIP-6:Ergo智能合约协议规范格式。

这意味着在最高层级上,dApp被定义为智能合约协议。如果dApp只有一个阶段,则将其定义为“单阶段智能合约协议”;如果dApp有多个阶段,则它是“多阶段智能合约协议”。HDF支持构建单阶段和多阶段协议dApp。

每个阶段都可以被视为协议中的一个状态,其中带有ERG、代币和数据的UTXO位于给定的时间点处。这可能有在整个协议中从一个阶段移动到下一个阶段的单个盒子、可能并行地通过所有阶段的多个盒子或者是异步地在某些阶段子集中移动的各种盒子。

无论给定智能合约协议的特定设计/复杂性如何,这些阶段中的每个阶段都需要“操作”。这些操作指的是状态转换,它允许:

1.??????ERG/代币/数据进入协议”)

2.??????ERG/代币/数据从协议中的一个阶段转到另一个阶段

3.??????ERG/代币/数据离开协议

新华社推出“世界杯数字藏品”:金色财经报道,据新华社公众号,新华社体育部、新华社技术局、新华社新媒体中心联合出品“世界杯数字藏品”,其中10张“传奇球星卡”回顾世界杯经典瞬间与人物故事,卡塔尔世界杯开赛后还将推出“每日之星”“精彩瞬间”等主题漫画藏品。[2022/11/20 22:09:51]

在无头dApp的背景下,这些操作中每个都由两个关键部分组成:

1.??????获取输入

2.??????使用状态转换的结果来创建UTXO输出

综上所述,dApp可以是单阶段或多阶段的智能合约协议。dApp协议中的每个阶段都可以执行一个或多个操作。然后,开发者可以通过指定给定操作所需的必需输入并编码所需的状态转换逻辑来定义这些操作,以创建嵌入在新创建的UnsignedTx中的UTXO输出。

无头dApp框架提供了指定这些构件的必需工具,以便从头开始构建无头dApp。在以下各节中,我们将详细介绍无头dApp框架的构建方式以及如何马上开始使用它。

Ergo无头dApp框架模块

BoxSpec

本模块展示了BoxSpec结构体,它可以用来创建UTXO的规范。根据协议中操作的要求,这被用来定义相关的盒子。

///用来制定`ErgoBox`参数的规范.

///本规范用作“真理之源”,来验证和寻找和规范匹配的`ErgoBox`

///这经常被用于定义多阶段智能合约协议中的阶段

///但也可用于定义操作的输入盒子

///所有字段都被包进`Option`,可以不必指定字段

#

#

pubstructBoxSpec{

///盒子地址

address:Option<ErgoAddressString>,

MetisDAO公布下半年路线图,将推出新型治理结构Commons和Eco Nodes:6月29日消息,Layer2 协议 MetisDAO 基金会公布今年下半年路线图,其中提出将采用两种治理结构,分别是 Commons 和 Eco Nodes,Commons成员可以提出 MIP,并 Eco Nodes 投票决定最终决定。任何人都可以通过质押 Metis 代币并积累 veMetis 以获得未来的决策权来创建 DAC 并成为 Common,为 Metis 生态系统的发展做出贡献的 Commons 可以成为 Eco Nodes,其投票权力将由声誉徽章决定。MetisDAO 计划在 12 个月的过渡期内全面实施该治理结构。

此外,Metis Sequencer Pool 将开放供社区参与,智能合约可以选择哪个成员可以成为下一个 Sequencer,确保 Sequencer 的职位有效轮换。DAC v2.0 将演变为去中心化协作工具和新的基于信誉的机制的门户,MVP版本将于8月发布。[2022/6/29 1:38:05]

???///nanoErgs被允许的范围

???value_range:Option<Range<NanoErg>>,

???///排序的`Constant`列表,定义了`ErgoBox`寄存器

???///第一个元素当作R4,第二个当作R5,以此类推.

???registers:Vec<Option<Constant>>,

???///排序的`TokenSpec`列表定义了`ErgoBox`代币

???tokens:Vec<Option<TokenSpec>>,

???///可选谓词,允许定义在验证盒子时处理的自定义规范逻辑

当前比特币全网未确认交易数量为18,870笔:金色财经消息,据最新数据显示,当前比特币全网未确认交易数量为18,870笔,全网算力为206.01 EH/s,24小时交易速率为2.69 交易/秒,目前全网难度为29.57 T,预测下次难度下调2.16%至28.93T,距离调整还剩9天11小时。[2022/6/28 1:34:43]

???predicate:Option<fn(&ErgoBox)->bool>,

}

构造出BoxSpec以后,有许多基本方法来简化为dApp编写链下代码的体验。

例如,verify_box允许测试作为输入提供的ErgoBox是否与使用BoxSpec创建的规范匹配。

pub?fn?verify_box(&self,?ergo_box:?&ErgoBox)?->?Result<()>?{

BoxTraits

本模块包含三种Trait:

1.??????WrappedBox

2.??????SpecifiedBox

3.??????ExplorerFindable

所有的ExplorerFindable结构体也是SpecifiedBox,两者同时都是WrappedBox。在链下代码中,将为操作定义所有UTXO输入作为实现SpecifiedBox的结构体,同时不需额外工作便可自动派生WrappedBox和ExplorerFindable。

WrappedBox提供了简化的接口来和ErgoBox交互。另一方面,SpecifiedBox指定WrappedBox也通过box_spec()方法实现了BoxSpec。最后,ExplorerFindable在SpecifiedBoxtrait的顶部提供了一个接口,用于从ErgoExplorerAPI实例中查找与BoxSpec匹配的盒子。

SpecifiedBoxes

此模块展示了实现“SpecifiedBox/WrappedBox/ExplorerFindable”trait的通用“SpecifiedBox”结构。这些盒子可用作链下协议代码中操作的输入,同时还使前端开发者能够轻松访问链上数据。

目前已实现的指定盒子有如下几种:

1.??????ErgsBox

2.??????ErgUsdOraclePoolBox

3.??????AdaUsdOraclePoolBox

ErgBox用于获取将Erg保留在其中的输入,这些输入可在智能合约协议操作中使用。

ErgUsdOraclePoolBox和AdaUsdOraclePoolBox为无头dApp开发者和前端实现者提供了极其简化的接口,以利用来自两个当前运行的预言机池的数据。这两个指定的盒子甚至可以用于需要从预言机池盒子读取当前汇率的钱包/任何链下应用程序中。

下面的代码块显示了如何在4行中从开发者自选的ErgoExplorerAPI实例中读取当前的ERG-USD预言机池汇率:

let?url?=?ErgUsdOraclePoolBox::explorer_endpoint("https://api.ergoplatform.com/api").unwrap();let?response?=?get(&url).unwrap().text().unwrap();let?oracle_pool_box?=????ErgUsdOraclePoolBox::process_explorer_response(&response).unwrap().clone();println!(????"Erg-USD?Oracle?Pool:?{}?nanoErgs?per?USD",????oracle_pool_box.datapoint());

OutputBuilders输出构建器

此模块给出了一些结构体,它们提供了在操作中创建通用UTXO输出的基本接口。这些通常用于创建保存用户更改或支付交易手续费的输出。

一些输出构建器的例子包括:

1.??????ChangeBox

2.??????TokensChangeBox

3.??????TxFeeBox

TxCreation创建交易

该模块提供了一些基本的函数,这让开发者更加容易地在操作中创建UnsignedTransaction。

Encoding编码

该模块提供了许多有用的函数,这些函数与把值从一种形式转换为另一种形式的编码/解码/包装/展开有关。

示例:

pub?fn?erg_to_nano_erg(erg_amount:?f64)?->?u64;pub?fn?nano_erg_to_erg(nanoerg_amount:?u64)?->?f64;pub?fn?unwrap_long(c:?&Constant)?->?Result<i64>;pub?fn?serialize_p2s_from_ergo_tree(ergo_tree:?ErgoTree)?->?P2SAddressString;

ProceduralMacros过程宏

此模块提供了三个过程宏,以使开发者的工作变得更加简单:

1.??????WrapBox

2.??????SpecBox

3.??????WASMBox

WrapBox只是实现了WrappedBoxtrait;SpecBox实现了使用BoxSpec的自定义new()方法,并且实现了ExplorerFindabletrait;WASMBox实现了两种基本方法来让结构体启用WASM支持。

开始入门

MathBountyHeadlessdApp教程系列已创建,可以指导初学者使用Ergo无头dApp框架。从项目创建到实现基于命令行的界面,您将得到精确到每一步的指导来逐步开发自己的无头dApp。

目前可用的部分:

1.??????数学悬赏无头dApp-现在开始编写你的第一个操作

2.??????数学悬赏无头dApp-完成无头dApp

3.??????数学悬赏无头dApp-为创建赏金编写CLI前端

文档

运行以下命令来阅读无头dApp框架的文档:

cargo?doc?--open

Ergo平台简介

Ergo平台/ErgoPlatform是一个从头搭建的安全、适应力强、开放、无需许可、真正去中心化的DeFi应用底层公链,主要专注于提供一种高效、安全、简便的方式去实现金融合约。它基于全新PoW共识机制Autolykos且永守PoW,采用UTXO升级版EUTXO模型构建,沿袭比特币传统但又新增许多功能,实现复杂金融合约的能力远超对手。其原生代币ERG总供应量为97,739,925枚,永不增发,永不销毁。Ergo于2017年开始开发,主网于2019年7月1日上线。由Github上大名鼎鼎的kushti带领拥有10年区块链理论研究和实战经验的顶尖技术团队倾力打造。团队成员曾参与开发NXT、Scorex、Cardano和Waves等。kushti是Ergo的联合创始人兼核心开发者,曾是NXT的核心开发者、smartcontract.com的联合创始人,带领团队开发有行业领先的预言机池。详情请登录https://www.jinse.com/blockchain/979572.html。

作者简介

RobertKornacki是顶级区块链解决方案公司、Cardano创始单位之一EMURGO的研发负责人和智能合约开发者,也是Ergo基金会成员。

DenysZadorozhnyi是Ergo公链平台Rust软件工程师、Scala软件工程师,也是Ergo开发者之一。

译者:Ergo公链御用翻译之一,留美计算机博士兼区块链爱好者Pie。

声明:本文著作权归原作者所有,所写内容仅代表原作者观点,不做投资理财建议。

来源:金色财经

标签:APPBOXERGDAPPcoinex交易所appNFTBOXHyperGPTDAPPX

DAI热门资讯
元宇宙:龙赫论币:3-16比特币精准布局 空单斩获2000个点位 有魄力更要有动力

生活需要规划,投资更加需要计划,投资不是一朝一夕的事,只有严格执行,才能从中获利。老师有丰富的实战操盘经验和独特的交易理念,金融行业,瞬息万变,老师所希望的就是用自己的专业知识和多年的经验,为你.

1900/1/1 0:00:00
BIT:区块链中的分布式系统到底是什么

生活中的分布式系统摊煎饼的小贩卖煎饼需要进行三道的工序:准备原料、加工、销售。主人A发现这样一天太累了,根本忙不过来,于是招B准备原料,招C来帮忙加工,这样主人A就可以之进行销售,B和C相对于A.

1900/1/1 0:00:00
比特币:币圈丁钰:每周不定时更新图解教程(量托)

量托:在讨论日k线5日、10日和20日均价线的同时,我们必须同时研究5日、10日和20日均量线,在某种意义上说,均量线的三角形托甚至比均价线的三角形托更加重要.

1900/1/1 0:00:00
CHA:3.17日大饼动向一览

???前两日,大饼经历了超过6000点的下滑。不错,又跌了一段,这意味着什么呢。?相信说到这里,很多老韭菜们已经闻到了阴谋的味道。?不错下跌是为了更好的上涨.

1900/1/1 0:00:00
CHAT:亮哥论币:3/17 ETH多空布局斩获95个点利润 抓住机会 就要勇于尝试

曾经以为,拥有是不容易的,后来明白,舍弃才是更难的。所有让你佩服的人,只是你的羡慕给平凡的他镀了金身,金融市场,不少人能看穿你的逞强,但没几个人像我一样愿意保护你的脆弱,时间游走,岁月搁浅,K线.

1900/1/1 0:00:00
IGG:火星区块链、共识实验室联合战略投资DeFi 借贷协议 WePiggy

近日,DeFi借贷协议WePiggy宣布获得火星区块链和共识实验室的战略投资。除上述机构外,多家与WePiggy高度协同的知名产业投资机构正在履行入资程序.

1900/1/1 0:00:00