链资讯 链资讯
Ctrl+D收藏链资讯
首页 > FTT > 正文

DAP:一文读懂dApp开发神器 :Ergo 无头 dApp框架_NFTT币

作者:

时间:

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

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

什么是无头dApp?

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

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

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

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

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

Vitalik Buterin:支持萨尔瓦多总统可能是加密社区犯下错误行为的一个例子:金色财经报道,以太坊联合创始人Vitalik Buterin在最新媒体采访时表示,支持萨尔瓦多总统Nayib Bukele可能是加密社区犯下错误行为的一个例子,萨尔瓦多选择了“自上而下”采用比特币的方式,比特币社区“自然而然地喜欢所有支持比特币的、有钱有势的人”,这是愚蠢的,相比之下以太坊社区在选择推广和合作对象方面做得更好。(cryptoslate)[2022/11/21 22:11:31]

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

方案目标

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

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

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

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

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

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

理解Ergo无头dApp框架

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

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

Gravity DEX开发团队成立新项目Crescent:3月11日消息,开发流动性模块Gravity DEX的B-Harvest团队分拆成立了一个名为Crescent的新项目,正在寻求完全重构和扩展Gravity DEX。Crescent由Ignite Ventures资助,并与Ignite团队合作支持Crescent项目。

Crescent已经公布了治理代币CRE分配模型,总量2亿枚,其中将向ATOM委托者(delegator)空投1亿枚,另外1亿枚作为战略储备。空投方面,5000万枚CRE可在Crescent网络启动后推出Crescent DEX(DEXdrop)时索取,具体空投数量会根据二次空投系统确定,即按UTC时间2022年1月1日00:00快照时委托数量的平方根来决定,如果参与一些治理提案,能获得通过固定乘数获得更多奖励;剩余5000万枚将在一定时期内分配给使用Crescent Boost的ATOM委托人。[2022/3/11 13:50:06]

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

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

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

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

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

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

1.获取输入

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

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

欧洲电竞组织Team Vitality与Tezos达成技术合作伙伴关系:金色财经报道,欧洲电子竞技和游戏组织Team Vitality宣布与Tezos达成为期三年的技术合作伙伴关系。双方将共同努力,为其社区提供与明星玩家互动的新方式。Team Vitality将与Tezos生态系统合作,教育粉丝了解区块链作为游戏体验的一部分的好处,并促进该技术的进步。[2022/1/7 8:30:53]

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

Ergo无头dApp框架模块

BoxSpec

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

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

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

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

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

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

#

#

pubstructBoxSpec{

///盒子地址

address:Option<ErgoAddressString>,

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

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

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

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

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

Vitalik Buterin销毁410万亿枚SHIB,占SHIB总供应量的约41%:5月17日消息,今日5点45分,以太坊创始人Vitalik Buterin将其钱包中超410万亿枚SHIB打入黑洞地址进行销毁,价值约73亿美元,占SHIB总供应量的约41%,目前其钱包中仍有46万亿枚SHIB。

此前报道,5月13日,Vitalik Buterin将包括6600亿枚ShibaInu代币SHIB等的大量meme代币换为ETH捐助给慈善机构,还向印度新冠加密救济基金会捐赠50万亿枚SHIB。[2021/5/17 22:09:41]

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

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

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

???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。

Vitalik为以太坊分片技术发布部分概念验证:据coindesk报道,以太坊创始人Vitalik Buterin在发布 “分片即将到来”时分享了一个新的代码库,该代码库记录了所谓的“分支选择规则”的部分概念验证,这是“以太碎片”如何与主区块链相互作用的代码。分片技术旨在将以太坊分成几个并发网络,从而使整个网络更加高效地扩展。这将有助于 缓解 网络面临的拥塞,从而提高交易速度并降低成本。[2018/5/2]

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-现在开始编写你的第一个操作(译注:链接地址

https://github.com/Emurgo/ergo-headless-dapp-framework/blob/main/tutorials/Math_Bounty/1-math-bounty-dApp-getting-started.md)

2.数学悬赏无头dApp-完成无头dApp(译注:链接地址?

https://github.com/Emurgo/ergo-headless-dapp-framework/blob/main/tutorials/Math_Bounty/2-math-bounty-dApp-finishing-the-headless-dapp.md)

3.数学悬赏无头dApp-为创建赏金编写CLI前端(译注:链接地址

https://github.com/Emurgo/ergo-headless-dapp-framework/blob/main/tutorials/Math_Bounty/3-math-bounty-dApp-writing-a-cli-frontend-that-allows-creating-bounties.md)

文档

运行以下命令来阅读无头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开发者之一。

作者:RobertKornacki;DenysZadorozhnyi

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

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

标签:DAPNFTDBOXPLO区块链dapp开发框架NFTT币Planet SandboxPLO币

FTT热门资讯
Kusama:金色观察|Kusama平行链插槽什么时候开始拍卖?_saitama币能涨到2元吗

KSM价格飞涨,是时候关心一下Kusama的平行链插槽什么时候可以开始拍卖了。此前,2020年末的时候,业内那时预测顺利的时间是1月开始Kusama,3月开始Polkadot,或者3月开始Kus.

NFT:你的NFT真好看!一文教你如何展示加密艺术品_PLO

来源:金色财经,原题《金色观察|如何展示加密艺术品?》,作者:子木你的NFT非常好看,向全世界展示它们吧!展示加密艺术品最好的方式是什么呢?这个问题问得好,无论是NFT新还是老玩家.

TRUC:Vitalik:为什么说SELFDESTRUCT对以太坊的生态弊大于利_The Killbox

原文链接: https://hackmd.io/@HWeNw8hNRimMm2m2GH56Cw/selfdestruct 作者:Vitalik 翻译&校对:戡乱&?阿剑原标题:《.

ERG:8000万美元之争:Reef Finance与Alameda Research各执一词,究竟孰是孰非?_BOX

3月16日,DeFi协议ReefFinance与加密市场造市商AlamedaResearch的「合作」之争升级,双方各执一词.

加密货币:美国经济刺激计划即将出台 比特币能否再创新高?_Quasarcoin

美国新一轮刺激经济计划的资金在本周晚些时候开始进入银行账户,而早先数据统计,美国散户交易员准备向比特币市场投入数十亿美元,为从去年起席卷加密货币行业的交易狂潮增速.

比特币:比特币大跳水散户拼命抢购,调查显示还有400亿美元即将流入_中国比特币之父是谁

本文来源:FX168财经报社 作者:苏怀瑾 比特币周一遭遇了两周多以来最大单日跌幅,从6万美元的高点一度跌破了5.5万美元.