元宇宙如何接入?yún)^(qū)塊鏈
歡迎來到我的元宇宙(毛坯),本文采樣ASMB(自動伸縮網(wǎng)狀區(qū)塊鏈)作為元宇宙的底層區(qū)塊鏈,下面介紹了元宇宙與區(qū)塊鏈對接的示例。
-
- 1 如何構建協(xié)議數(shù)據(jù)模型?
- 2 如何獲取最新狀態(tài)數(shù)據(jù)?
- 3 如何修改最新狀態(tài)數(shù)據(jù)?
1 如何構建協(xié)議數(shù)據(jù)模型?
構建對應元宇宙3d模型的數(shù)據(jù)模型,例如1號協(xié)議:
// 每個賬號的標準狀態(tài),1號協(xié)議消息內容對應 ExInfo
type StateAccount struct {
//Nonce uint64
trie *trie.Trie
worksex *WorksmsgEx
// rcps map[string]Messagebs
Balance *big.Int
LockedAmount *big.Int // 質押中(投票,質押)
ExInfo []byte // 附加數(shù)據(jù),不同的應用協(xié)議數(shù)據(jù)結構不同, []Exinfo rlp 序列化后數(shù)據(jù)
Receipts []byte //確認消息列表trie key:cid, value: Sign:1 cfm:2 exc:3 確認狀態(tài)+追加信息
}
type ExInfo struct {
Ptlno int // 協(xié)議編號 1~100000 保留向基金會申請后才能使用,100000 之后用戶自己定義,不同用戶可能出現(xiàn)協(xié)議沖突
Objdata []byte // 不同協(xié)議,用戶狀態(tài)內容編碼后數(shù)據(jù)
}
// 協(xié)議號 1,元宇宙用戶畫像模型(示例,待標準化
type MetaEx struct {
Name *big.Int // 昵稱
Age byte //年齡
Sex byte //性別
Info string // 簡介
Model3d []byte //用戶3d 模型,加密后實體模型序列化數(shù)據(jù),ipfs cid 值
Metadata []byte // 個人元宇宙裝扮擺設數(shù)據(jù)
Ex []byte // 擴展數(shù)據(jù)
}
2 如何獲取最新狀態(tài)數(shù)據(jù)?
- 用戶3D建模數(shù)據(jù)通過區(qū)塊鏈接口加密存儲到區(qū)塊鏈,只能自己私鑰才能訪問(當然也可以公開存儲,然后解析 MetaEx 數(shù)據(jù)
- 用戶登錄系統(tǒng)后通過元宇宙3d建??蛻舳耍镜亟馕鼋饷芎蟮?d 模型數(shù)據(jù),并在本地渲染后與其他人進行互動
# 通過GetAccount獲取賬號最新狀態(tài)
GetAccount(ctx context.Context, address []byte) (*StateAccount, error)
3 如何修改最新狀態(tài)數(shù)據(jù)?
方式1. 通過協(xié)議號修改整個ExInfo.Objdata
Pubmsg向區(qū)塊鏈網(wǎng)絡發(fā)送簽名后的消息
Pubmsg(ctx context.Context, transmsg Messagebs) error
type Messagebs struct {
Msgtype
Body Itrans // 可以是cid ,也可以是body(signmsg)
}
// Body
type Exmsg struct {
Msgtype Msgtype // models.Trans
From types.Address
PtlNo int
ObjData []byte //
Time uint64 //時間
}
type SignExmsg struct {
Exmsg Exmsg
Sign []byte
}
方式2. 通過智能合約修改 ExInfo.Objdata 中的某一項,這樣可以節(jié)約消息的大小,從而節(jié)約帶寬,以及存儲空間
Pubmsg向區(qū)塊鏈網(wǎng)絡發(fā)送簽名后的消息
Pubmsg(ctx context.Context, transmsg Messagebs) error
# 智能合約編寫見[]
方式3. 通過協(xié)議號修改整個ExInfo.Objdata,某個字段的值文章來源:http://www.zghlxwxcb.cn/news/detail-811960.html
Pubmsg向區(qū)塊鏈網(wǎng)絡發(fā)送簽名后的消息
Pubmsg(ctx context.Context, transmsg Messagebs) error
// Body
type Ex2msg struct {
Msgtype Msgtype // models.Trans
From types.Address
PtlNo int
FieldId string
FeildData []byte //
Time uint64 //時間
}
type SignEx2msg struct {
Ex2msg Ex2msg
Sign []byte
}
原文地址:https://github.com/asmbio/doc/blob/master/Meta.md文章來源地址http://www.zghlxwxcb.cn/news/detail-811960.html
到了這里,關于元宇宙如何接入?yún)^(qū)塊鏈的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!