XCM基礎部分
指引:
ParachainDevelopment·PolkadotWiki「1」
XCM:TheCross-ConsensusMessageFormat「2」
XCM消息格式
OverviewofXCM:AFormat,NotaProtocol
xcm-format參考資料「3」
XCMisrelatedtocross-chaininthesamewaythatRESTisrelatedRESTful.
XCM是一種消息格式,而不是消息傳遞協議,因為它無法在系統之間發送任何消息,僅僅是一種應如何執行消息傳輸的格式,也就是表達接收者應該做什么。XCM還可用于通過UMP、DMP、XCMP通信通道中的任意一個來表發消息的含義。
xcm消息里帶有執行消息和位置信息
例如:鏈和鏈之間,合約與合約之間的xcm消息傳遞都可以用這套規范來實現,這些東西不能依托于鏈來實現,因為這套規范,如果依托于鏈本身,那每次鏈的升級都相當于做了一次xcm版本的升級。這很影響兼容性。
XCM不僅僅是跨鏈,而是"跨共識"消息格式!-技術圈「4」
XCM的核心—XCVM
XCMformat?的核心是XCVM,它是一種超高級非圖靈完備計算機,它的指令設計和交易大致處于同一水平。
XCM中的“消息”實際上只是XCVM上運行的程序。它是一個或多個XCM指令。程序一直執行,直到它運行到最后或遇到錯誤,此時它完成并停止。
XCVM包括許多寄存器,以及對托管它的共識系統的整體狀態的訪問。指令可能會更改寄存器,它們可能會更改共識系統的狀態或兩者兼而有之。
MultiLocations
可以理解為共識系統語義下的“位置”
需要注意的是,所有位置都是從消息解釋器的相對角度來看的。就如下面的例如...
從ParachainA的?度來看:
RelayChain:X1(Parent)
ParachainA:Self
ParachainB:X2(Parent,ParachainB)
ContractA:X1(ContractA)
ContractB:X3(Parent,ParachainB,ContractB)
Alice:X2(ContractA,AcountId32{Alice})
Bob:X1(AcountId32{Bob})
Charlie:X3(Parent,ParachainB,AcountId32{Charlie})
Dave:X4(Parent,ParachainB,ContractB,AcountId32{Dave})
消息路由
Cross-ConsensusProtocols
隨著XCMFormat的正式建立,這些messages需要協議的通用模式,Polkadot實現了兩個,用于在其組成的parachain之間處理XCMmessages。
注:下文中的“消息”意指上面提到的messages。
VMP
實際上,有兩種垂直消息傳遞傳輸協議。
UMP:允許平行鏈向他的中繼鏈發送消息
DMP:允許中繼鏈將消息向下傳遞到他們的平行鏈之一。
注意,
DMP?的消息也可能來自平行鏈,例如:平行鏈A轉給平行鏈B的情況,這個過程是這樣子的。
首先平行鏈A將使用
UMP,將消息傳遞給中繼鏈,其次中繼鏈再根據
DMP將消息向下傳遞給平行鏈B
XCMP
XCMP允許平行鏈與其中繼鏈上其他的平行鏈交換消息。
Moonbirds:Day One Pass提交窗口已關閉,將啟動空投:金色財經報道, Moonbirds在社交媒體更新了Diamond Exhibition信息,該NFT項目表示目前Day One Pass提交窗口已關閉,同時空投也將正式啟動,用戶需要關注自己的錢包,預計美東時間4月28日下午3點藏品將開放給所有Diamond-nested Moonbirds持有者,同時這些持有者也可以鑄造或申領可以交易的Mint Pass。[2023/4/28 14:32:07]
跨鏈交易使用基于Merkle樹的簡單排隊機制來解決,以確保fidelity。中繼鏈驗證人的任務是將一個平行鏈的輸出隊列上的交易移動到目標平行鏈的輸入隊列中。但是,只有關聯的metadata作為hash存儲在中繼鏈的存儲中。
輸入和輸出隊列有時在Polkadot代碼庫和相關文檔中分別稱為ingress和egress消息。
XCMP-精簡版
水平中繼路由消息傳遞協議(HRMP)?協議是未完全完成的功能的臨時替代品。雖然XCMP本身仍在開發中,但HRMP是一個有效的替代品。
HRMP具有與XCMP相同的接口和功能,但對資源的要求更高,因為它將所有消息存儲在中繼鏈存儲中。當XCMP實施后,HRMP計劃被棄用并逐步淘汰以支持它。
XCMP
(思想:中繼鏈只保存相關元數據的hash值,只做關于xcm的相關驗證。)
由于現在XCMP還沒有被完全開發出來,現在主要使用的是HRMP,上文也提到了,HRMP需要用到許多的資源,現在吞吐量可能會是42條平行鏈上下。不過現在parity的開發者已經在把其他模塊交易移到其他平行鏈比如國庫財政部分來提高吞吐能力和承載鏈數量。
小問題:
xcm消息執行失敗了,怎么辦呢題外話:波卡網絡上平行鏈只負責出塊,所以沒有grandpa共識,最后敲定區塊上交給中繼鏈決定的。
消息分發
Polkadot'sMessagingScheme「5」
Polkadot的跨鏈消息傳遞方案「6」
平?鏈階段中,收集?打包區塊的同時,也會將跨鏈交易放到平?鏈的出隊列中。跨鏈交易通過
XCMP協議進?傳輸,根據收集?和驗證?的?絡連接情況,
具體的傳輸?法有三種:
發起鏈收集?直接發送給?標鏈收集?;
發起鏈驗證?發送給?標鏈收集?;發起鏈收集?發送給發起鏈驗證?,發起鏈驗證?傳遞給?標鏈驗證?,?標鏈驗證?再傳遞給?標鏈收集?。
跨鏈交易傳遞到?標鏈后,會把跨鏈交易放到平?鏈?隊列中。通過以上步驟,就完成了跨鏈交易在鏈間的傳遞。
如果A和B不共享全節點,則需要依靠中繼鏈上的驗證?來傳遞消息。
隊列
中繼鏈驗證者應負責將某?平?鏈上輸出隊列中的交易移??標平?鏈上的輸?隊列中。
收集?節點負責把平?鏈之間的信息傳遞。
收集?產?"出?"列表信息并會在"??"接收到其它平?鏈信息。
當收集?產?了區塊并提交給驗證?,它會收集最新??隊列信息并且處理它。
驗證?將會對收集?提交的平?鏈區塊進?驗證,包括處理到該平?鏈預期??的信息。
cumulus的pallets中兩種隊列:
MQC
消息隊列鏈是由驗證人創建的一個通用哈希鏈,用于跟蹤從發送方發送到單個接收方的每條消息以及順序。
MQC本身不保存在任何地方,而是只提供所有接受到的消息的最終證明。當驗證器接收到候選消息時,它從放置在upward_messages中的消息中按升序生成MQC
FeatureXCMP
Cross-ConsensusMessageFormat(XCM)·PolkadotWiki「7」
平行鏈之間直接通信,在中繼鏈上只更新proofs和讀取confirmations,只包含驗證消息處理的必要信息。
Circle 2022年12月儲備報告:金庫儲備資金超445億美元:金色財經報道,美元穩定幣 USDC 發行方 Circle 發布 2022 年 12 月的儲備報告,該報告由 GrantThornton 會計集團審計,詳細說明了穩定幣發行方 Circle 的儲備金庫的構成,目前 44,553,543,212 USDC由托管賬戶中的 44,693,963,701 美元支持,其中很大一部分為美國國債。Circle 的儲備基金注冊為政府貨幣市場基金,該基金的股權由 Circle 全資擁有,包括 14 種不同的美國債券,價值超過 235 億美元,該基金還持有 4890 萬美元現金,另外還有 3300 萬美元應歸該基金(due to the Fund),但被“時間和結算差異”所抵消。持有 Circle 現金儲備的美國銀行包括紐約梅隆銀行、Citizens Trust Bank、Customers Bank、New York Community Bank、Signature Bank、硅谷銀行和Silvergate Bank。(cointelgraph)[2023/1/30 11:36:50]
假設平行鏈A上部署的一個合約要發一條跨鏈調用的消息給平行鏈B,從而調用位于鏈B上的合約完成資產轉移,其整體流程如下:
調用者在鏈A上調用部署在鏈A上的智能合約,從而初始化一條以鏈B為目的地的跨鏈消息M;
鏈A的收集人節點會將這條消息M連同其目的地、時間戳放到A的出口隊列中;
鏈B的收集人在正常情況下會輪詢其他所有的平行鏈的收集者節點以查看是否有自己的消息。如果在新一輪詢問中發現有以自己為目的地的消息,那么其會將這條消息放到自己的入口隊列中,以待在產生下一個區塊的時候處理該消息;
另外,鏈A的驗證人也會通過讀取鏈A的出口隊列從而知道這條消息;鏈B的驗證人也是。驗證人也需要知道這些消息,因為之后它們都會對這條消息進行驗證;
當鏈B的收集人節點開始構建一個新區塊的時候,它會處理當前入口隊列中所有的消息;在處理過程中,消息M會執行鏈B中相應的智能合約以此完成預期的資產轉移;
然后收集人將這個區塊提交給驗證人,驗證人會驗證消息M是否真的被處理了;如果這條消息被驗證確實處理了,并且這個區塊沒有其他不合法的地方,驗證者就會把該塊確認進中繼鏈中。
跨鏈資產轉賬詳解:從基礎到實踐
上方都是關于XCM的基礎部分,有了上面的知識,我們就進一步擴展講講其中的一些應用實現,例如跨鏈資產轉賬。
關于平行鏈之間進行資產轉賬會有一些細節。
跨鏈資產轉賬方式
XCM其實定義了兩種轉賬的方式,一種是AssetTeleportation一種是ReserveAssetTransfer。
參考:HowcanItransferassetsusingXCM?「8」
AssetTeleportation
這個轉賬模型只有兩個參與者,源和目的地。
例子:
Rust?//?鏈A的Alice向鏈B的Bob轉賬100個鏈A的native?token_aTransfer_teleport_asset(source_alice,?dest_bob,?token_a,?100);
過程:
首先先會在鏈Aburn掉Alice的100個token_a,并記下burn掉的資產總量,
然后鏈A會創建一個名為"ReceiveTeleportedAssets"的XCM指令,并將burn掉的資產數量和鏈B的相對位置作為這條XCM指令的參數,然后它會將這條指令發送到目的地,在那里它被處理并根據參數里的信息mint新的資產。
最后鏈B會將新鍛造的資產存入Bob賬戶中。
缺點:
它要求來源和目的地都具有高度的相互信任。目的地必須相信來源已經燒毀了發送過來的資產,并且來源還必須相信目的地鑄造在來源處被燒毀的資產。
不支持這兩個條件中的任何一個都將導致資產的總發行量發生變化或NFT的完全丟失/重復。
FUT/USDT的LP下降84%:金色財經消息,據CertiK監測,2023年1月4日,FUT部署者(0xc047)從EOA 0xfd59(MasterChef合約)收到了約6700萬FCS代幣。隨后,他們用4600萬FCS代幣交換了流動資金池0xFe9D的7025.44 FUT。該交換造成FCS/FUT價格下滑超過99%。部署者將FUT代幣換成LP 0xBdBa中的2,588,074美元,共13筆交易。FUT/USDT的LP下降了84%。[2023/1/5 9:53:17]
ReserveAssetTransfer
過程:chainA上的account1想轉移某個資產到chainB上的account2賬??,那?先將account1的資產轉移?chainA上的chainB代表賬?,再發送?條通知消息給chainB,chainB將對應的資產分配給account2。
ps:其實業界里更推崇后者(reserve),相較于前者會更有保障。像orml-xtokens其實就是基于reserve方式實現的平行鏈多資產轉賬模塊。
為平行鏈添加跨鏈資產轉移的功能
我們接下來的目的就是創建兩條平行鏈,讓這兩條平行鏈支持多資產并且實現跨鏈資產轉賬。
實驗環境
我們會準備4個中繼鏈的驗證人節點以支持兩條平行鏈。因為我們要模擬鏈A到鏈B的跨鏈資產轉移以及平行鏈到中繼鏈的跨鏈資產轉移。
-4個驗證人的中繼鏈
-平行鏈A
-平行鏈B
平行鏈的跨鏈轉賬一共有兩種場景:
平行鏈轉中繼鏈平行鏈轉中繼鏈都是轉的中繼鏈代幣,如果想讓自己的平行鏈能支持向中繼鏈跨鏈轉賬的功能其實只需要配置XcmConfig就行。
平行鏈A轉平行鏈B平行鏈之間的轉賬會稍微復雜些,因為會涉及多資產轉賬的問題,這里只需要配置XcmConfig以及添加orml模塊就行。
接下來我們直接分析整個完整的runtime配置來介紹一下配置跨鏈資產轉賬時需要注意的配置項以及其含義。
平行鏈轉中繼鏈
為兩條平行鏈添加支持向中繼鏈進行跨鏈轉賬的功能。
進行runtime配置
其實是關于XcmExecutor的配置,其中一項XcmConfig就是指定XcmSender.這是你需要包含實現XCMP協議的pallet的地方。根據您要將XCM發送給誰,如果是要發送到中繼鏈,則需要包含parachain-system-pallet「9」,或者如果你要發送到同級平行鏈,則需要包含xcmp-queue-pallet「10」。
Rust///?queues
平行鏈A轉平行鏈B
為平行鏈A和平行鏈B配置ORML相關庫以實現平行鏈之間的跨鏈資產轉移將會用到
ORML的一些依賴庫:
orml-xtokens為平行鏈提供跨鏈資產轉移的方式。
orml-tokens用于查詢多資產額度的模塊
orml-currencies可以使用currencies模塊實現鏈內的多資產轉賬,可以理解為currencyplus?。
orml-traits共享一些trait,包括BasicCurrency、MultiCurrency、Auction等trait。
orml-xcm-support?提供types、traits和implementations以支持XCM集成
最后實現的效果:
鏈A的Alice通過xtokens模塊進行跨鏈資產轉移將token_a轉移給鏈B的Bob,轉賬成功后,鏈B上的Bob通過tokens模塊查看token_a的余額,然后通過currencies模塊將一部分的token_a轉賬給鏈B上的Alice。
進行runtime配置
為了平行鏈能夠支持多資產轉移,我們除了需要添加上面的ORML依賴庫,還需要做一些定制化的配置。
區塊鏈賽馬游戲Zed Run將發行代幣ZED,7%空投給游戲用戶:7月8日消息,區塊鏈賽馬游戲 Zed Run 宣布將發行代幣 ZED,Zed Run 賽馬所有者將有資格申領 ZED 代幣。代幣 ZED 總量 10 億枚,其中 7% 的代幣(7000 萬枚)將空投給游戲用戶,快照已于 6 月 1 日完成拍攝。
ZED 代幣旨在獎勵在 Zed Run 上參與比賽、育種和借貸的社區參與者。代幣和游戲整合后,將使代幣持有者能夠擴大游戲中的實用性,第一個推出的實用程序將是借貸。ZED 代幣將成為 Zed Run 的主要實用代幣和游戲內代幣,并用于 Play-and-Earn 視頻游戲。[2022/7/8 2:01:05]
鏈A和鏈B上需要實現CurrencyId和CurrencyIdConvert,一個是代幣的tokenSymbol的list一個是將tokenSymbol轉換成multilocation的轉換器。
引入orml標準庫
還需要進一步配置XcmExcuter,其中包括跨鏈轉賬時手續費的收費規則、XCM過濾器以及如何存取資產的配置
兩條鏈都需要配置這些內容,下面我主要以鏈A為例。鏈B同理。
1.配置CurrencyId和CurrencyIdConvert
假設條件:
平行鏈A->TokenSymbol:AA->ParachainId:1000
平行鏈B->TokenSymbol:BB->ParachainId:2000
Rust##pub?enum?CurrencyId?{??//?/?Relay?chain?token.??ROC,??//?Native?TokenSymbol??AA,??//?===============================??//?1.?添加支持的代幣tokenSymbol??//?===============================??BB}pub?type?Amount?=?i128;//?===============================//?2.?設置?CurrencyIdConvert,//?===============================pub?struct?CurrencyIdConvert;impl?Convert>?for?CurrencyIdConvert?{??fn?convert(id:?CurrencyId)?->?Option?{????match?id?{??????CurrencyId::ROC?=>?Some(Parent
impl?orml_currencies::Config?for?Runtime?{??type?Event?=?Event;??type?MultiCurrency?=?Tokens;??type?NativeCurrency?=?BasicCurrencyAdapter;??type?GetNativeCurrencyId?=?GetNativeCurrencyId;??type?WeightInfo?=?();}pub?struct?AccountIdToMultiLocation;impl?Convert?for?AccountIdToMultiLocation?{??fn?convert(account:?AccountId)?->?MultiLocation?{????X1(AccountId32?{?network:?NetworkId::Any,?id:?account
parameter_type_with_key!?{??pub?ParachainMinFee:?|location:?MultiLocation|?->?u128?{????#?//?false?positive????match?(location
impl?orml_xtokens::Config?for?Runtime?{??type?Event?=?Event;??type?Balance?=?Balance;??type?CurrencyId?=?CurrencyId;??type?CurrencyIdConvert?=?CurrencyIdConvert;??type?AccountIdToMultiLocation?=?AccountIdToMultiLocation;??type?SelfLocation?=?SelfLocation;??type?MinXcmFee?=?ParachainMinFee;??type?XcmExecutor?=?XcmExecutor;??type?Weigher?=?FixedWeightBounds;??type?BaseXcmWeight?=?BaseXcmWeight;??type?LocationInverter?=?LocationInverter;??type?MaxAssetsForTransfer?=?MaxAssetsForTransfer;}parameter_type_with_key!?{??pub?ExistentialDeposits:?|currency_id:?CurrencyId|?->?Balance?{????//?every?currency?has?a?zero?existential?deposit????match?currency_id?{??????_?=>?0,????}??};}parameter_types!?{??pub?ORMLMaxLocks:?u32?=?2;??pub?NativeTreasuryAccount:?AccountId?=?TreasuryPalletId::get()
數據:stETH目前是DeFi借貸協議Euler Finance上第二大借入資產:6月12日消息,Token Terminal發推稱,stETH目前是DeFi借貸協議Euler Finance上第二大借入資產(borrowed asset)。
此前6月初消息,基于以太坊的DeFi借貸協議Euler Finance宣布完成3200萬美元融資,Haun Ventures領投,Variant、FTX Ventures和Jump Crypto等參投。
據悉,Euler Finance使用了一種框架式的借貸風險評估方案,團隊將于今年晚些時候推出DAO,使用戶能夠對Euler的開發和運營進行治理,并決定如何使用其社區金庫。[2022/6/13 4:20:53]
impl?orml_tokens::Config?for?Runtime?{??type?Event?=?Event;??type?Balance?=?Balance;??type?Amount?=?Amount;??type?CurrencyId?=?CurrencyId;??type?WeightInfo?=?();??type?ExistentialDeposits?=?ExistentialDeposits;??//?type?OnDust?=?orml_tokens::TransferDust;??type?OnDust?=?();??type?MaxLocks?=?ORMLMaxLocks;??type?DustRemovalWhitelist?=?Nothing;}//?orml?unknown?tokensimpl?orml_unknown_tokens::Config?for?Runtime?{??type?Event?=?Event;}impl?orml_xcm::Config?for?Runtime?{??type?Event?=?Event;??type?SovereignOrigin?=?EnsureRoot;}//?=====================================//?=====================================//?=====================================//?runtime/src/lib
pub?type?Barrier?=?(??TakeWeightCredit,??AllowTopLevelPaidExecutionFrom,??AllowUnpaidExecutionFrom,??//?^^^?Parent?and?its?exec?plurality?get?free?execution??AllowUnpaidExecutionFrom,);//?==================================//?AssetTransactor?設置支持的資產類型//?==================================pub?type?LocalAssetTransactor?=?MultiCurrencyAdapter<??Currencies,??UnknownTokens,??IsNativeConcrete,??AccountId,??LocationToAccountId,??CurrencyId,??CurrencyIdConvert,??DepositToAlternative,>;//?==================================//Trader配置跨鏈轉賬手續費的收費規則,這個手續費是其他鏈給我們鏈進行跨鏈轉賬的時候,我們平行鏈會收取一定的手續費。//?==================================use?frame_support::{ExtrinsicBaseWeight,?WEIGHT_PER_SECOND};pub?const?MICROUNIT:?Balance?=?1_000_000;pub?const?MILLICENTS:?Balance?=?1_000?*?MICROUNIT;pub?const?CENTS:?Balance?=?1_000?*?MILLICENTS;?//?assume?this?is?worth?about?a?cent
//?======================================//?XcmConfig//?======================================pub?struct?XcmConfig;impl?xcm_executor::Config?for?XcmConfig?{??type?Call?=?Call;??type?XcmSender?=?XcmRouter;??//?How?to?withdraw?and?deposit?an?asset.??type?AssetTransactor?=?LocalAssetTransactor;??type?OriginConverter?=?XcmOriginToTransactDispatchOrigin;??type?IsReserve?=?MultiNativeAsset;??type?IsTeleporter?=?();?//?Teleporting?is?disabled.??type?LocationInverter?=?LocationInverter;??type?Barrier?=?Barrier;??type?Weigher?=?FixedWeightBounds;??type?Trader?=?Trader;??type?ResponseHandler?=?PolkadotXcm;??type?AssetTrap?=?PolkadotXcm;??type?AssetClaims?=?PolkadotXcm;??type?SubscriptionService?=?PolkadotXcm;}
ps:關于Trader機制的解釋。
轉賬的手續費,一般是把轉賬的手續費充到國庫。
需要開發者自己設置weight的比例,這個weight的意思就是一秒鐘的時間消耗大概多少的手續費,這個weight其實就是時間復雜度。這里需要注意一下:如果不調整的話,大伙轉賬消耗的都是一個代幣,但是一個ksm得幾百u,一個平行鏈代幣卻是幾u,這個相差就有點大,就有可能被攻擊。
如果是非平行鏈的話,這個手續費會給驗證人,但是平行鏈沒有驗證人,只能給國庫。
如果Trader不指定任何賬戶,
類似這樣子的寫法,gas就相當于burn掉了。
如果是給國庫,那生態的人可以通過治理模塊支配國庫內的額度。
如果是直接burn掉,就類似通縮模型。轉的越多,代幣越少。
打開Hrmp
在這里之前,請確保你鏈A和鏈B都進行了上面的配置。
我們本地需要啟動4個驗證人的一條中繼鏈,然后把兩條平行鏈注冊上去
打開Hrmp通道有兩種方法,一種是在中繼鏈上直接通過sudo打開,另外一種則是在平行鏈上利用orml-xcm打開hrmp。
注意的是,hrmp是一個單向的通道,我們需要實現雙向打通,就必須打通兩次
這里以中繼鏈上通過sudo為例,后者可以根據acala的wiki為參考:OpenHRMPChannel「11」.
在Developer/Sudo下通過parasSudoWrapper.sudoEstablishHrmpChannel來打開1000->2000和2000->1000的hrmp通道。
1.打開1000->2000
2.打開2000->1000
進行跨鏈資產轉賬
到這所有的準備工作都準備好了,我們可以進行xcm消息傳遞了也就是說可以進行跨鏈資產轉移了。
1.鏈A向中繼鏈轉中繼鏈代幣
這里需要注意的是只能往中繼鏈轉中繼鏈代幣,因為我用的是rococo-local,所以中繼鏈代幣tokenSymbol為ROC。
2.鏈A向鏈B轉中繼鏈代幣
需要注意的是這里的AccountId32需要我們將ss58的地址hex一下
轉換工具:SubstrateUtilities「12」
同理也可以把CurrencyId切換成平行鏈代幣,比如鏈A的nativetoken。
執行成功之后,我們可以去鏈B通過Developer/ChainState下的tokens模塊查看余額。
總結
在實踐之前需要先吃一些基礎的知識,可以囫圇吞棗但是不能不去了解。
配置的時候確實牽扯到需要的配置項,不過細心的理解每個選項的含義,也能把問題修復好。
參考鏈接
「1」ParachainDevelopment·PolkadotWiki:
https://wiki.polkadot.network/docs/build-pdk#how-to-make-cross-chain-transfers
「2」XCM:TheCross-ConsensusMessageFormat:
https://medium.com/polkadot-network/xcm-the-cross-consensus-message-format-3b77b1373392
「3」xcm-format參考資料:
https://wiki.polkadot.network/docs/learn-crosschain#overview-of-xcm-a-format-not-a-protocol
「4」XCM不僅僅是跨鏈,而是"跨共識"消息格式!:
https://jishuin.proginn.com/p/763bfbd6d91c#:~:text=XCM是一種消息,表發消息的含義。
「5」Polkadot'sMessagingScheme:
https://medium.com/web3foundation/polkadots-messaging-scheme-b1ec560908b7
「6」Polkadot的跨鏈消息傳遞方案:
https://mp.weixin.qq.com/s?__biz=MzI3MzYxNzQ0Ng==&mid=2247485114&idx=1&sn=b85ed58daaa075c7c332c204b3749e20&chksm=eb21c1f3dc5648e588a01f860ae3cadd44c654270cc76a14b8b728e25a3b99ed03ccb97dc21f&scene=21
「7」Cross-ConsensusMessageFormat(XCM)·PolkadotWiki:
https://wiki.polkadot.network/docs/learn-crosschain
「8」HowcanItransferassetsusingXCM?:
https://substrate.stackexchange.com/questions/37/how-can-i-transfer-assets-using-xcm/38#38
「9」parachain-system-pallet:
https://github.com/paritytech/cumulus/tree/master/pallets/parachain-system
「10」xcmp-queue-pallet:
https://github.com/paritytech/cumulus/tree/master/pallets/xcmp-queue
「11」OpenHRMPChannel:
https://wiki.acala.network/build/development-guide/composable-chains/open-hrmp-channel
「12」SubstrateUtilities:
https://www.shawntabrizi.com/substrate-js-utilities/
XCMPartII:?
VersioningandCompatibilityhttps://medium.com/polkadot-network/xcm-part-ii-versioning-and-compatibility-b313fc257b83
XCMPartIII:
ExecutionandErrorManagement:
https://medium.com/polkadot-network/xcm-part-iii-execution-and-error-management-ceb8155dd166
PolkadotMessagingGuide-HackMD:
https://hackmd.io/S4TZc1uTQH-vxEWv-QFapg
Sub0Online:?
GettingStartedwithXCM-YourFirstCrossChainMessages:https://www.youtube.com/watch?v=5cgq5jOZx9g
PolkadotLaunchPhases:
https://wiki.polkadot.network/docs/learn-launch
Acala&KaruraWiki:
https://wiki.acala.network/
Collator·PolkadotWiki:
https://wiki.polkadot.network/docs/learn-collator
來源:金色財經
如果我們想在去中心化互聯網更進一步,最終將需要這三大支柱:共識、存儲以及計算。如果人類成功將這三個領域去中心化,我們將踏向互聯網的下一征程:Web3.
1900/1/1 0:00:00“在互聯網上,沒人知道你是一條狗。”這句話雖然出自1993年《紐約客》的一則漫畫,但在近30年后的元宇宙時代,依然可以用來討論虛擬世界的數字身份認證難題.
1900/1/1 0:00:00據官方消息,KuCoin已新增USDD/TRX交易對,目前USDD/TRX交易已正式開啟。此前,KuCoin已于5月開啟USDD/USDT和USDD/USDC交易.
1900/1/1 0:00:006.29比特幣以太坊日內行情解析,及操作思路 比特幣解析:周初市場走出一波四小時級別的回撤走勢.
1900/1/1 0:00:00市值最大的加密貨幣,比特幣,在2021年11月8日創下67566.83美元的歷史新高后失去了動力。在不到一個月的時間里,價格跌至5萬美元以下,開始了加密貨幣的冬天.
1900/1/1 0:00:00本號的文章只做研究、學習和交流使用,不具有任何的操作指導意義,事實上也不贊成去操作????????????????????????????????????????????????????????.
1900/1/1 0:00:00