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允許平行鏈與其中繼鏈上其他的平行鏈交換消息。
Band Protocol啟動捐贈計劃:6月13日消息,去中心化預言機項目Band Protocol宣布啟動捐贈計劃(Band Protocol Grants Program),以加速生態系統的發展。該捐贈計劃將支持核心基礎設施、應用開發、社區倡議和研究四個主要類別的項目。[2023/6/13 21:34:05]
跨鏈交易使用基于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,只包含驗證消息處理的必要信息。
假設平行鏈A上部署的一個合約要發一條跨鏈調用的消息給平行鏈B,從而調用位于鏈B上的合約完成資產轉移,其整體流程如下:
Zhu Su發表FTX和Genesis合作的7條證明:1月5日消息,三箭資本創始人Zhu Su在推特上表示:“FTX和Genesis之間的市場合作:
1.FTX和Genesis在去年5月的同一天將steth的抵押率從接近100%降至0%,同時做空steth;
2.FTX和Genesis一起以巨大規模購買了未解鎖的SOL,并且Genesis承諾可用于貸款;
3.FTX賄賂Genesis交易員,向Genesis交易員提供Serum等代幣的種子分配,以換取在Serum抵押品上獲得更好的貸款利率;
4.Genesis交易員經常與FTX交易員互相分享信息,其中許多人(目前)變得富有并試圖創辦基金;
5.Genesis借出數十億美元的客戶存款作為FTT抵押品,同時知道并承認他們在需要時永遠無法退出這種抵押品(首席風險官在職僅3個月后辭職);
6.FTX和Genesis濫用了他們的信托特權,策劃對Luna的多管齊下的協同攻擊;
7.FTX去年8月向Genesis歸還了25億美元的貸款,Genesis可能通過鏈分析和詢問財務信息知道這些來自FTX存款人的資金,因為即使在此之后仍有未償還貸款。”[2023/1/5 10:23:13]
調用者在鏈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的完全丟失/重復。
FTX前COO:不知道任何轉移客戶資金的事情,個人資產都在FTX上:11月15日消息,針對加密 KOL Autism Capital 發布的關于包括 FTX 前 COO Constance 在內的前員工的各種傳聞,FTX 前 COO Constance 進行了回應與澄清,其表示:
看到我們的前雇員在推特上散布關于我個人的不真實的謠言,最終還是感到很傷心和難過。我和這個事件沒有關系,在上周二之前我也毫不知情。我所做的只是盡力在事后提供幫助,我不想放棄我在過去 3 年中為之付出的公司,所以我真的試圖拯救它。
我想澄清的是:
1/我不知道任何轉移客戶資金的事情,也不了解 Alameda 的交易及其與 FTX 的安排。
2/我負責 BD,增長和市場營銷,直到最后一刻,我和我的團隊都在用自己的名譽來捍衛 FTX,看到這樣的事情發生,我們感到非常失望。
3/我和 Sam 沒有任何私人關系,在過去 3 年,我非常努力地建設公司和團隊,我不認為這次的失敗是由于我們的交易所業務沒有做好。
4/Conch Shack 是公司財產,不是送給我的,我和其他員工一起住在 Conch Shack。
5/像你們很多人一樣,我所有的資產都在 FTX 上,現在都沒了,我在其他交易所沒有任何資產。
6/我非常傷心,而且我個人也被員工們分享的這些不實之詞傷害了,我會暫停發布新的工作招聘貼,直到完全恢復過來,但我還是會在其他人 DM 我時把簡歷發送過去。[2022/11/15 13:07:46]
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?。
Polygon計劃在年底前將團隊人數增加200人:9月8日消息,Polygon 人力資源主管 Bhumika Srivastava 在接受采訪時表示,Polygon 計劃今年年底前將在全球偏遠地區運營的團隊增加約 200 人 ,使團隊總人數擴大 40%。 (彭博社)[2022/9/8 13:16:39]
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依賴庫,還需要做一些定制化的配置。
鏈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
互換市場顯示美聯儲7月份加息100個基點的概率接近四分之三:7月14日消息,互換市場顯示,美聯儲7月份加息100個基點的概率接近四分之三。(金十)[2022/7/14 2:11:57]
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()
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
來源:金色財經
Tags:TYPTYPECONRENTYPH價格TyperiumFrench Connection FinanceNeverend Ecentralization Filecoin
USDT會爆雷嗎?最近傳出有避險基金在大量做空USDT,規模達到數億美金。這篇來分析下USDT爆雷的可能性.
1900/1/1 0:00:00盡管存在持續的“牛市陷阱”風險,以太在過去六天中反彈了近40%。由于投資者評估疲弱的美國經濟數據及其緩解加息擔憂的潛力,以太坊的原生代幣Ether(ETH)與風險較高的資產一起上漲.
1900/1/1 0:00:00ReFi就是運用錢來激勵人去做對生態有幫助的事情,使自然資源再生。貨幣有三個用途:交換媒介、記賬單位、價值儲藏。前兩個用途讓錢成為了一個很好的工具,第三個用途讓錢變成了很多人一生追求的目標.
1900/1/1 0:00:00鏈上游戲市場巨大的潛力,吸引著越來越多的人們進入這個世界。近日,我們看到一款名為GalaxyHeroes(GHC)的鏈游,以全新的姿態,向這個領域的獨角獸AxieInfinity發起挑戰.
1900/1/1 0:00:00原文標題:《Nansen復盤加密巨頭自救:如何阻止百億多米諾傾塌》 原文來源:Nansen 原文編譯: Katie辜, Odaily星球日報 隨著前陣時間stETH脫錨事件的進一步發展.
1900/1/1 0:00:00Terra崩潰的代幣TerraClassicUSD(USTC)和TerraClassic(LUNC)啟動了加密市場的崩盤,價格在過去幾天里上漲了2天.
1900/1/1 0:00:00