橋接復雜鏈上協議與鏈下世界,賦予開發者構建生態之自由
Ergo 無頭 dApp框架(簡稱Ergo HDF)是開發Ergo無頭dApp(去中心化應用)的首選Rust框架。Ergo HDF給開發者提供了首個可移植、基于UTXO(未花費交易輸出)的無頭dApp開發框架,此框架可應用于任何區塊鏈。(譯注:Rust是一款并發安全,支持函數式、命令式以及泛型等編程范式的多范式編程語言,語法和C++類似)
什么是無頭dApp?
無頭dApp是用于開發dApp的全新技術和商業模型,它剛開始在更廣泛的區塊鏈領域中占據一席之地。簡而言之,無頭dApp是讀取和參與鏈上智能合約協議的純粹可移植自包含邏輯。
換句話說,無頭dApp是一款可讓復雜鏈上協議接觸鏈下世界的軟件,它精簡的接口使任何人都可以在其上進行構建。此處的關鍵是,顧名思義,無頭dApp沒有構建于其上的前端(故稱“無頭”)。
無頭dApp提供的是在其上構建整個去中心化生態系統的自由。由于在默認情況下,無頭dApp是純粹的,可移植的,因此可以將它們編譯為任何桌面設備操作系統、移動設備操作系統或者瀏覽器。因為它們具有精簡的接口,所以可以輕松將其集成到腳本和機器人中;因為它們具有可組合性,所以可以在應用程序中一起使用,從而可以輕松地在不同協議之間套利,或者可以形成全新的用戶體驗,而無需了解每個受支持的無頭dApp的核心工作方式。
新入行的開發者對于開發智能合約協議的經驗有限,而無頭dApp在未來可以使他們仍然對dApp領域產生真正的影響。這種關注點分離(Separation of Concerns)的設計允許開發者在無頭dApp的基礎上進行構建,而無需花費大量時間來了解開發dApp的繁冗細節。(譯注:Separation of Concerns,關注點分離,是將計算機程序分隔為不同部分的設計原則,每一部分會有各自關注的焦點,也就是可以影響程序代碼的信息集合。)
此外,無頭dApp開啟了全新商業模式的生態系統。 無頭dApp并沒有讓智能合約協議的創建者從成功的協議中攫取所有潛在的利潤/價值,反而為前端開發者揭示了截至目前尚未利用的收入來源。 通過僅將協議創建者的潛在收益分散到現在包含已開發的每個前端,我們可以從當今具有單個前端的流行dApp所產生的中心化效果上退一步。 相反,我們可以激勵由各種開發者/公司構建的,由眾多獨立前端組成的穩健生態系統,所有人都可以因改善整個生態系統而獲利。
Nansen:巨鯨逢高拋售,PEPE市值縮水近2億美元:金色財經報道,Nansen研究分析師表示,Meme 代幣 PEPE 的市值在周二飆升至 5.82 億美元,然后在周三大幅下跌至 3.97 億美元,巨鯨逢高拋售導致 PEPE 市值縮水近2億美元。分析師解釋道,有很多大持有者早早進入,代幣價格從那時起上漲了很多,所以當他們獲利了結時,價格和市值往往會大幅波動,因為人們傾向于關注這些巨鯨的動向。而且 Pepe 的流動性相當薄弱,一個“巨鯨”賣出了 220 萬美元的 Pepe,但“由于大量滑點”,只收到了價值 650,000 美元的 ETH,此外,在過去的 24 小時內,其他幾個巨鯨的售價也超過了 100 萬美元。[2023/5/4 14:41:08]
無頭dApp實現了這所有功能,并且同時進一步改善了開發者的體驗。
方案目標
1.讓開發者使用無頭dApp框架寫出自己的鏈下邏輯,從而創建他們自己面向所有平臺(桌面設備、網頁、移動設備)的無頭dApp。
2.為開發者提供從Ergo dApp規范到無頭dApp的輕松體驗,并提供更強大的保證和簡單直接的實現途徑。
3.將dApp的鏈下邏輯與任何前端邏輯分開,從而無論什么應用或前端在集成無頭dApp時都保證了重用性。
4.為前端實現者提供易于使用的方法,以便輕松訪問dApp協議的當前狀態,而無需了解其工作原理。
5.通過使用新穎的設計模式為所需的輸入UTXO指定BoxSpec(譯注:Rust框架中定義盒子規范的結構體),將為無頭dApp定義和獲取輸入UTXO的概念進行了抽象化。
6.使腳本、(套利)機器人和其他軟件輕松地構建在使用無頭dApp框架構建的多個無頭dApp之上,從而提供了標準化的接口和一定程度的可組合性。
理解Ergo無頭dApp框架
在使用無頭dApp框架(HDF)之前,有許多重要的術語和概念需要理解。無頭dApp框架的總體設計基于EIP-6:Ergo智能合約協議規范格式。(譯注:EIP全稱Ergo Improvement Proposal,即Ergo改善方案。EIP-6鏈接為https://github.com/ergoplatform/eips/blob/master/eip-0006.md)
數據:超半數的拉丁美洲公民進行過加密交易:金色財經報道,根據萬事達的數據,拉丁美洲地區51%的消費者至少進行過一次加密交易。根據Chainalysis發布的2022年全球加密貨幣采用指數,巴西、阿根廷、哥倫比亞和厄瓜多爾位居加密貨幣采用數量最多的前20個國家之列。
通過Bored Ape Yacht Club或CryptoPunks等項目,NFTs已經接觸到了發達國家的主流受眾,這些項目現在已經成為非常受歡迎的收藏品。相比之下,拉丁美洲的公司正在投資非功能性的用例,如支持當地藝術家、允許客戶轉售機票或捐贈給非營利組織。(coindesk)[2022/10/29 11:54:48]
這意味著在最高層級上,dApp被定義為智能合約協議。 如果dApp只有一個階段,則將其定義為“單階段智能合約協議”;如果dApp有多個階段,則它是“多階段智能合約協議”。HDF支持構建單階段和多階段協議dApp。
每個階段都可以被視為協議中的一個狀態,其中帶有ERG、代幣和數據(在寄存器內)的UTXO位于給定的時間點處。 這可能有在整個協議中從一個階段移動到下一個階段的單個盒子(UTXO)、可能并行地通過所有階段的多個盒子或者是異步地在某些階段子集中移動的各種盒子。
無論給定智能合約協議的特定設計/復雜性如何,這些階段中的每個階段都需要“操作”(Action)。這些操作指的是狀態轉換(交易邏輯),它允許:
1.ERG/代幣/數據進入協議(又稱“引導操作(Bootstrap action)”)
2.ERG/代幣/數據從協議中的一個階段轉到另一個階段(或者退出協議)
3.ERG/代幣/數據離開協議
在無頭dApp的背景下,這些操作(Action)中每個都由兩個關鍵部分組成:
1.獲取輸入(UTXO/用戶輸入/來自外部世界的外部數據)
2.使用狀態轉換的結果來創建UTXO輸出
綜上所述,dApp可以是單階段或多階段的智能合約協議。dApp協議中的每個階段都可以執行一個或多個操作(Action)。 然后,開發者可以通過指定給定操作所需的必需輸入并編碼所需的狀態轉換邏輯來定義這些操作,以創建嵌入在新創建的UnsignedTx中的UTXO輸出(譯注:UnsignedTx是無符號交易變量)。
無頭dApp框架提供了指定這些構件的必需工具,以便從頭開始構建無頭dApp。 在以下各節中,我們將詳細介紹無頭dApp框架的構建方式以及如何馬上開始使用它。
Socios.com成為2022年金球獎官方合作伙伴:據官方消息,Socios.com宣布成為2022年金球獎官方合作伙伴。Socios.com表示將借本次合作機會,向全世界足球粉絲展示該平臺的各種優勢,并使其Logo在活動全程中獲得大量曝光。此外,Socios.com還將向一些幸運的粉絲Token持有者發放本次活動的VIP門票。[2022/9/16 7:01:02]
Ergo無頭dApp框架模塊
Box Spec (盒子規范)
本模塊展示了BoxSpec結構體,它可以用來創建UTXO的規范。根據協議中操作(Action)的要求,這被用來定義相關的盒子。
/// 用來制定 `ErgoBox`參數的規范.
/// 本規范用作“真理之源” ,來驗證和尋找和規范匹配的`ErgoBox`
///這經常被用于定義多階段智能合約協議中的階段
/// 但也可用于定義操作(Action)的輸入盒子
/// 所有字段都被包進`Option`,可以不必指定字段
#[wasm_bindgen]
#[derive(Clone)]
pub struct BoxSpec {
/// 盒子地址
address: Option<ErgoAddressString>,
/// nanoErgs被允許的范圍
value_range: Option<Range<NanoErg>>,
/// 排序的 `Constant`列表,定義了`ErgoBox`寄存器
/// 第一個元素當作R4, 第二個當作 R5, 以此類推.
registers: Vec<Option<Constant>>,
/// 排序的 `TokenSpec`列表定義了`ErgoBox`代幣
tokens: Vec<Option<TokenSpec>>,
樂天旗下NFT市場Rakuten NFT為日本地方政府發行的NFT設置專門的板塊:9月16日消息,日本電商平臺樂天旗下NFT市場Rakuten NFT新設“本地NFT”板塊,專門上線日本地方政府發行的NFT。
此前今年2月份消息,樂天集團推出其旗下NFT市場“Rakuten NFT”。(Coinpost)[2022/9/16 7:00:59]
/// 可選謂詞,允許定義在驗證盒子時處理的自定義規范邏輯
predicate: Option<fn(&ErgoBox) -> bool>,
}
構造出BoxSpec以后,有許多基本方法來簡化為dApp編寫鏈下代碼的體驗。
例如,verify_box允許測試作為輸入提供的ErgoBox是否與使用BoxSpec創建的規范匹配。
pub fn verify_box(&self, ergo_box: &ErgoBox) -> Result<()> {
Box Traits (盒子 Trait)
(譯注:Trait是Rust語言中為Self類型定義的方法組合,中文里有特征、特點之意。在Rust語言的上下文中一般直接使用而不譯出,以防技術上的歧義)
本模塊包含三種Trait:
1.WrappedBox
2.SpecifiedBox
3.ExplorerFindable
所有的ExplorerFindable結構體也是SpecifiedBox,兩者同時都是WrappedBox。在鏈下代碼中,將為操作(Action)定義所有UTXO輸入作為實現SpecifiedBox的結構體,同時不需額外工作便可自動派生WrappedBox和ExplorerFindable。
WrappedBox提供了簡化的接口來和ErgoBox交互。另一方面,SpecifiedBox指定WrappedBox也通過box_spec()方法實現了BoxSpec。最后,ExplorerFindable在SpecifiedBox trait的頂部提供了一個接口,用于從Ergo Explorer API實例中查找與BoxSpec匹配的盒子。
中國唱片集團推出數字藏品:金色財經報道,據中國唱片集團公眾號,中國唱片集團推出《黃河大合唱》數字藏品,這是一張編號為M-001的黑膠唱片,是我國第一張中密紋唱片,1958年由中國唱片研制成功,其中收錄了中國人民解放軍總政歌舞團演唱的《黃河大合唱》中的曲目。[2022/6/19 4:38:09]
Specified Boxes (指定盒子)
此模塊展示了實現“ SpecifiedBox / WrappedBox / ExplorerFindable”trait的通用“ Specified Box”結構。 這些盒子可用作鏈下協議代碼中操作(Action)的輸入,同時還使前端開發者能夠輕松訪問鏈上數據(例如預言機池數據)。
目前已實現的指定盒子有如下幾種:
1.ErgsBox
2.ErgUsdOraclePoolBox
3.AdaUsdOraclePoolBox
ErgBox用于獲取將Erg保留在其中的輸入,這些輸入可在智能合約協議操作(Action)中使用。
ErgUsdOraclePoolBox和AdaUsdOraclePoolBox為無頭dApp開發者和前端實現者提供了極其簡化的接口,以利用來自兩個當前運行的預言機池的數據。 這兩個指定的盒子甚至可以用于需要從預言機池盒子讀取當前匯率的錢包/任何鏈下應用程序中。
下面的代碼塊顯示了如何在4行中從開發者自選的Ergo Explorer API實例中讀取當前的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());
Output Builders 輸出構建器
此模塊給出了一些結構體,它們提供了在操作(Action)中創建通用UTXO輸出的基本接口。 這些通常用于創建保存用戶更改或支付交易手續費的輸出。
一些輸出構建器的例子包括:
1.ChangeBox
2.TokensChangeBox
3.TxFeeBox
Tx Creation 創建交易
該模塊提供了一些基本的函數,這讓開發者更加容易地在操作(Action)中創建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;
Procedural Macros 過程宏
此模塊提供了三個過程宏,以使開發者的工作變得更加簡單:
1.WrapBox
2.SpecBox
3.WASMBox
WrapBox只是實現了WrappedBox trait;SpecBox實現了使用BoxSpec的自定義new()方法,并且實現了ExplorerFindable trait;WASMBox實現了兩種基本方法(w_new()和w_box_struct ())來讓結構體啟用WASM支持。
開始入門
Math Bounty Headless dApp(數學懸賞 無頭dApp)教程系列已創建,可以指導初學者使用Ergo無頭dApp框架。從項目創建到實現基于命令行的界面,您將得到精確到每一步的指導來逐步開發自己的無頭dApp。
目前可用的部分:
1.數學懸賞無頭dApp-現在開始編寫你的第一個操作(Action)(譯注:鏈接地址
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(Command Line Interface,命令行界面)前端(譯注:鏈接地址
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平臺/Ergo Platform是一個從頭搭建的安全、適應力強、開放、無需許可、真正去中心化的DeFi應用底層公鏈,主要專注于提供一種高效、安全、簡便的方式去實現金融合約。它基于全新PoW共識機制Autolykos且永守PoW,采用UTXO升級版EUTXO模型構建,沿襲比特幣傳統但又新增許多功能,實現復雜金融合約的能力遠超對手。其原生代幣ERG總供應量為97,739,925枚,永不增發,永不銷毀。Ergo于2017年開始開發,主網于2019年7月1日上線。由Github上大名鼎鼎的kushti(Alexander Chepurnoy)帶領擁有10年區塊鏈理論研究和實戰經驗的頂尖技術團隊傾力打造。團隊成員曾參與開發NXT、Scorex、Cardano和Waves等。kushti是Ergo的聯合創始人兼核心開發者,曾是NXT的核心開發者、smartcontract.com(即Chainlink)的聯合創始人,帶領團隊開發有行業領先的預言機池。詳情請登錄https://www.jinse.com/blockchain/979572.html。
作者簡介
Robert Kornacki是頂級區塊鏈解決方案公司、Cardano創始單位之一EMURGO的研發負責人和智能合約開發者,也是Ergo基金會成員。
Denys Zadorozhnyi是Ergo公鏈平臺Rust軟件工程師、Scala軟件工程師,也是Ergo開發者之一。
作者:Robert Kornacki;Denys Zadorozhnyi
譯者:Ergo公鏈御用翻譯之一,留美計算機博士兼區塊鏈愛好者Pie。
自2020年中旬流動性挖礦熱潮以來,DeFi生態便以迅猛的勢頭飛速發展,其速度與體量超乎所有人的想象。即使是比特幣行情的劇烈波動也絲毫沒有影響到DeFi市場的增長.
1900/1/1 0:00:00加密分析公司Messari高級研究分析師Ryan Watkins推測,一旦Eth2和PoS徹底完成,以太坊可能會取代比特幣成為最大的加密資產.
1900/1/1 0:00:00MicroStrategy與美圖是美國與亞洲最熱衷購買加密貨幣的上市公司,但創始人都是黑歷史滿滿,他們主營業務衰弱,不得不尋求加密貨幣出奇制勝.
1900/1/1 0:00:00特斯拉官網:我們目前只支持美國本土的客戶使用比特幣付款,將來會考慮開拓新的市場。特斯拉CEO埃隆·馬斯克(Elon Musk)在推特確認,“現在可以用比特幣購買特斯拉了.
1900/1/1 0:00:00Polkadot平行鏈插槽拍賣臨近,這張圖片可以幫助你了解Polkadot中繼鏈rDOT解決方案和平行鏈rDOT解決方案之間的區別.
1900/1/1 0:00:00在DeFi生態系統中,保險仍然是利基市場。但是,隨著保險領域的成熟以及機構參與者的加入,保險可能會成為DeFi的最大支柱之一.
1900/1/1 0:00:00