九層天塔DAPP系統開發技術|鏈上智慧合約dapp開發方案
分散式應用程式是資料的重要消費者,並需要節點將這些資料提供給在鏈上執行的使用者或應用程式。
我們可以使用Oracle網路以可信且高效的方式提供資料流,使加密網路能夠在可靠且分散化的方式下與傳統和區塊鏈系統進行互動。在這方面,Supraoracles、API3和Chainlink是一些示例。
改善應用程式的使用者介面和使用者體驗
在鏈上訊息傳遞仍然是區塊鏈基礎設施的關鍵組成部分。
隨著零售需求的增長,九層天塔DAPP系統13z開4z77發z558,應用程式/協議與其使用者以分散化且有意義的方式互動的能力將是增長的關鍵驅動因素。
在鏈上訊息傳遞可能有用的一些潛在領域包括:通知使用者領取回報/代幣、在錢包中內建通訊訊息以及通知/公告重要協議更新。在這方面,EPNS和XMTP是一些示例。
改善鏈上資料可用性
構建在區塊鏈上的應用程式依賴於鏈上和外部資料。
儲存在鏈上的資料未以可以有效或輕鬆地被Dapp使用的格式註冊。為了做到這一點,資料需要被索引和組織以進行高效檢索。
我們可以透過構建允許我們以分散化和強大的方式查詢和索引區塊鏈資料的協議來做到這一點。在這方面,The Graph、Covalent等是一些示例。
為多鏈世界做好準備
隨著整個區塊鏈生態系統的擴張和一層和二層生態系統(Rollups)的數量增加,跨鏈橋樑的管理和互操作性變得越來越重要。
跨鏈橋樑允許原本孤立的生態系統進行有意義的互動——這類似於新貿易路線幫助連線不同地區,引領著知識分享的新時代。
我們已經建立了廣義的資訊傳遞解決方案,例如Layer Zero、Axelar和其他跨鏈解決方案,支援廣義的資訊傳遞,允許所有型別的資料和資訊(包括代幣)在多個生態系統之間移動。使多鏈夢想成為現實。
從starknet跨鏈到ethereum主網是比較簡單的。
一個簡單的例子如下:
let mut message_payload:Array<felt252>=ArrayTrait::new();
message_payload.append(WITHDRAW_MESSAGE);
message_payload.append(l1_recipient.into());
message_payload.append(amount.low.into());
message_payload.append(amount.high.into());
send_message_to_l1_syscall(
to_address:read_initialized_l1_bridge(),payload:message_payload.span()
);
當我們在cairo合約中呼叫send_message_to_l1_syscall函式時,starknet節點會收到to_address和payload的資訊,其中to_address是L1資訊接收地址,而payload為傳送的資訊內容。節點收到上述資訊後,會使用以下公式計算hash值:
keccak256(
abi.encodePacked(
FromAddress,
ToAddress,
Payload.length,
Payload
)
);
其中各引數含義如下:
FromAddress L2傳送方地址
ToAddress L1接收方地址
Payload傳送資訊
計算完成後會將上述內容使用abi.encodePacked進行序列化,以其作為引數請求L1的核心合約中updateState函式,該函式有很多作用,此處我們僅關注L2->L1跨鏈資訊傳遞功能。此功能是透過processMessages函式實現的,其中核心部分如下:
if(isL2ToL1){
bytes32 messageHash=keccak256(
abi.encodePacked(programOutputSlice[offset:endOffset])
);
emit LogMessageToL1(
//from=
programOutputSlice[offset+MESSAGE_TO_L1_FROM_ADDRESS_OFFSET],
//to=
address(programOutputSlice[offset+MESSAGE_TO_L1_TO_ADDRESS_OFFSET]),
//payload=
(uint256[])(programOutputSlice[offset+MESSAGE_TO_L1_PREFIX_SIZE:endOffset])
);
messages[messageHash]+=1;
}
此處的programOutputSlice即節點打包的請求引數,我們使用陣列檢索來實現請求引數的反序列化。值得注意的是,這些請求引數並沒有被儲存在以太坊狀態中,而僅作為LogMessageToL1事件丟擲。該事件定義為:
event LogMessageToL1(uint256 indexed fromAddress,address indexed toAddress,uint256[]payload);
1
故在上述程式碼中,只有messages[messageHash]+=1;進行了以太坊狀態修改,所以歸根到底,只有L2->L1的資訊的雜湊值被記錄了。
原文連結:https://blog.csdn.net/WongSSH/article/details/130311981
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70020115/viewspace-2948724/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 九層天塔DApp合約開發系統搭建技術APP
- 鏈上DAPP系統開發|智慧合約DAPP開發搭建APP
- 九層天塔智慧合約模式系統開發模式
- DAPP合約系統開發邏輯技術丨DAPP成熟系統開發技術方案APP
- 智慧合約Dapp系統開發(方案)APP
- 智慧合約DAPP理財模式系統開發技術方案APP模式
- DAPP合約系統開發技術丨DAPP馬蹄鏈系統開發成熟DmeoAPP
- FDF智慧合約系統開發|馬蹄鏈DAPP開發搭建技術APP
- DAPP系統開發邏輯丨DAPP系統開發功能丨合約DAPP系統開發技術APP
- Polygon馬蹄鏈(matic)智慧合約DApp開發系統技術GoAPP
- 智慧合約及DAPP鏈上合約流動性挖礦分紅系統開發技術方案APP
- FDF迴圈互助智慧合約系統DAPP開發技術方案APP
- 智慧合約DAPP理財返現系統開發技術方案APP
- 關於智慧合約馬蹄鏈DAPP系統開發技術講解(方案)APP
- NFT遊戲開發系統鏈改技術|馬蹄鏈智慧合約Dapp開發技術遊戲開發APP
- DApp智慧合約系統開發APP
- 區塊鏈DApp開發 | 跨鏈智慧合約技術搭建開發區塊鏈APP
- 馬蹄鏈Dapp智慧合約(系統開發)案例丨馬蹄鏈MATIC智慧合約技術開發原理APP
- 趣步智慧合約模式系統開發dapp技術模式APP
- dapp智慧合約公排系統開發技術搭建APP
- FDF智慧合約DAPP複利系統技術開發APP
- 長沙區塊鏈DAPP智慧合約系統開發方案區塊鏈APP
- 區塊鏈趣步DAPP智慧合約合約系統技術開發詳情區塊鏈APP
- DAPP智慧合約NFT鏈上質押挖礦系統開發搭建方案APP
- NFT鏈遊功能開發丨DAPP智慧合約遊戲系統技術開發模式APP遊戲模式
- DAPP開發流程 | DAPP智慧合約開發APP
- 智慧合約共享投票dapp系統開發(技術支援)丨dapp投票功能開發專案APP
- Bsc幣安鏈智慧合約Dapp開發技術搭建APP
- 馬蹄鏈智慧合約dapp系統開發搭建APP
- JAva智慧合約DAPP系統開發(區塊鏈)JavaAPP區塊鏈
- 佛薩奇(智慧合約)系統dapp開發技術搭建APP
- 智慧合約互助公排DAPP系統開發技術案例APP
- 馬蹄鏈智慧合約DAPP開發需求丨馬蹄鏈智慧合約DAPP質押挖礦系統開發(開發案例)APP
- DAPP合約代幣燃燒挖礦系統開發丨智慧合約DAPP技術框架APP框架
- DAPP馬蹄鏈智慧合約系統開發(案例)丨DAPP馬蹄鏈開發原始碼APP原始碼
- 九層天塔技術開發丨原始碼丨九層天塔系統開發詳情分析原始碼
- polygon馬蹄鏈智慧合約dapp系統開發|NFT鏈遊戲搭建技術GoAPP遊戲
- DAPP智慧合約/系統開發/智慧合約原始碼/DAPP/Defi/NFT/IDOAPP原始碼