亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前言

這篇文章說下使用百度鏈可能遇到的問題及解決辦法

創(chuàng)世節(jié)點(diǎn)賬戶余額最大值

cat data/config/xuper.json 
百度區(qū)塊鏈所遇到的問題及處理匯總

 

我隨便寫了一個值 239位

然后查詢下余額可以查到

百度區(qū)塊鏈所遇到的問題及處理匯總

 

所以就認(rèn)為沒有最大值吧 設(shè)置為多少就是多少嘍

若要知道精確的 需要看下源碼

轉(zhuǎn)賬金額大小有限制嗎

./xchain-cli transfer --to XC1111111111111111@xuper --amount 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
百度區(qū)塊鏈所遇到的問題及處理匯總

 

有點(diǎn)震驚吶 這么大都可以轉(zhuǎn)賬 哈哈

這個賬戶我也沒有創(chuàng)建 我直接往里面轉(zhuǎn)賬 也是可以的?

在轉(zhuǎn)賬的時候同時創(chuàng)建好了這個賬戶,但不是合約賬戶哦

普通賬戶和合約賬戶可以是同一個賬戶名稱

我們再來測試下哈

1、先給一個不存在的賬戶轉(zhuǎn)賬

此時會創(chuàng)建這個普通賬戶

百度區(qū)塊鏈所遇到的問題及處理匯總

 

2、在創(chuàng)建一個同名的合約賬戶

百度區(qū)塊鏈所遇到的問題及處理匯總

 

印證了上述的猜測

調(diào)用合約 保存K-V Key和Value長度有限制嗎

我測試的時候是用的36288長的字符串 是可以的

百度區(qū)塊鏈所遇到的問題及處理匯總

 

如果是 36288*2 長度 JAVA代碼已經(jīng)不支持了 超過了java 字符串常量的長度

這里科普下java的基本知識

a、字符串變量:
String內(nèi)部是以char數(shù)組的形式存儲,數(shù)組的長度是int類型,那么String允許的最大長度就是Integer.MAX_VALUE = 2^zhi31 - 1 = 2147483647。又由于java中的字符是以16位存儲的,因此大概需要4GB的內(nèi)存才能存儲最大長度的字符串。 
b、字符串常量:
如“abc”、”1234”之類寫在代碼中的字符串str,那么允許的最大長度取決于字符串在常量池中的存儲大小,也就是字符串在class格式文件中的存儲格式:
CONSTANT_Utf8_info {    
  u1  tag;    
  u2  length;   
  u1  bytes[length];
}
  
u2是無符號的16位整數(shù),因此理論上允許的string str的最大長度是2^16-1=65535。然而實際測試表明,允許的最大長度僅為65534,超過就編譯錯誤。

既然調(diào)用合約是通過java sdk調(diào)用 所以字符串最大不能超過java所支持的范圍

測試環(huán)境

2個出塊節(jié)點(diǎn) 1個同步節(jié)點(diǎn)

分別命名為 節(jié)點(diǎn)1 節(jié)點(diǎn)2 節(jié)點(diǎn)3

創(chuàng)建一個合約賬戶并轉(zhuǎn)賬 看在其他的節(jié)點(diǎn)是否有同步過去

  • 在節(jié)點(diǎn)2創(chuàng)建一個合約賬戶

使用節(jié)點(diǎn)1賬戶地址訪問節(jié)點(diǎn)2

百度區(qū)塊鏈所遇到的問題及處理匯總

 

通過java sdk 連接節(jié)點(diǎn)1 創(chuàng)建合約賬戶 XC1111111111116666@xuper

create account de1dc9e04a2d8b9bbf734f60431ab7eac5843f8711c3fe430c5df345dac272b8

  • 給該合約賬戶轉(zhuǎn)點(diǎn)錢

使用節(jié)點(diǎn)1的賬戶訪問節(jié)點(diǎn)2

百度區(qū)塊鏈所遇到的問題及處理匯總

 

transfer 3d6023d4a1ba08506fdd1e0ee0cc234f6d93f639a708e32ebe8d1d51d8272349

  • 分別查看節(jié)點(diǎn)1、節(jié)點(diǎn)2、節(jié)點(diǎn)3的該合約賬戶的余額

節(jié)點(diǎn)1余額查詢 1000000000

節(jié)點(diǎn)2余額查詢 1000000000

節(jié)點(diǎn)3余額查詢 1000000000

小結(jié):在一個節(jié)點(diǎn)創(chuàng)建合約賬戶并發(fā)起轉(zhuǎn)賬交易 會同步給其他的節(jié)點(diǎn)

部署合約看是否同步

  • 在一個節(jié)點(diǎn)部署一個合約

使用節(jié)點(diǎn)1的賬戶訪問節(jié)點(diǎn)3

./xchain-cli wasm deploy --account XC1111111111116666@xuper --cname hello_last_1  --fee 5574291 --runtime go /Users/mengfanxiao/Documents/project/company/XinPools_INFO/document/business/baidu/20200714-最新版本/xuperchain/core/contractsdk/go/example/eleccert_final/eleccert_final.wasm -a '{"creator":"mengfanxiao"}'
百度區(qū)塊鏈所遇到的問題及處理匯總

 

  • 在不同的節(jié)點(diǎn)分別調(diào)用該合約做交易

在節(jié)點(diǎn)1調(diào)用合約

百度區(qū)塊鏈所遇到的問題及處理匯總

 

invoke txid: 60b4ee039415ed2e8880212cf182361143f314f988034a669aee5be2a9c6b02a
response: 
gas: 100608

在節(jié)點(diǎn)2調(diào)用合約

和節(jié)點(diǎn)1區(qū)別在于 key為 mac1(這個合約的key是唯一的)

invoke txid: 127ad9ea3c0071dad560fb189b6be054e9fde06dc07d2202171aed5a32f49d3b
response: 
gas: 100609

在節(jié)點(diǎn)3調(diào)用合約

和節(jié)點(diǎn)1區(qū)別在于 key為 mac2

invoke txid: 56cd4547e266423630b6db038692bb04f0730ea207b776f55654d7d0db705717
response: 
gas: 100609

小結(jié):在一個節(jié)點(diǎn)部署合約 會同步給其他的所有節(jié)點(diǎn)

  • 到不同的節(jié)點(diǎn)查看一個hash值 看是否都一致

比如查詢 60b4ee039415ed2e8880212cf182361143f314f988034a669aee5be2a9c6b02a

./xchain-cli tx query 60b4ee039415ed2e8880212cf182361143f314f988034a669aee5be2a9c6b02a

在節(jié)點(diǎn)1、節(jié)點(diǎn)2、節(jié)點(diǎn)3查詢的交易詳情內(nèi)容一致

小結(jié):在一個節(jié)點(diǎn)做的交易會同步給所有的節(jié)點(diǎn)

升級版本是否會影響到歷史數(shù)據(jù)

  • 方式一(不推薦 也不對)

目前我是用的master分支 但不是最新的

當(dāng)前的區(qū)塊高度是605

那我想要升級到最新的master代碼

1、現(xiàn)將所有節(jié)點(diǎn)停掉

2、創(chuàng)建新的文件夾用來存放最新的版本

百度區(qū)塊鏈所遇到的問題及處理匯總

 

3、下拉最新的代碼并進(jìn)行編譯

4、替換可執(zhí)行文件

cp -r output/* lastv-20200729/pn1
cp -r output/* lastv-20200729/pn2
cp -r output/* lastv-20200729/pn3

5、將上一版本下的data和conf目錄替換到最新的

cp -R pn1/data/ lastv-20200729/pn1/data
cp -R pn1/conf/ lastv-20200729/pn1/conf
cp -R pn2/data lastv-20200729/pn2/data
cp -R pn2/conf lastv-20200729/pn2/conf
cp -R pn3/data/ lastv-20200729/pn3/data
cp -R pn3/conf/ lastv-20200729/pn3/conf

6、重啟

nohup ./xchain --vm ixvm &

節(jié)點(diǎn)1可以啟動,但節(jié)點(diǎn)2啟動失敗 說明這種升級的方式不對

  • 方式二(推薦)

查看升級文檔 https://xuperchain.readthedocs.io/zh/latest/operations_guides.html#id2

我上面的思路是創(chuàng)建新的文件夾 將老版本數(shù)據(jù)復(fù)制到新文件夾中

官方文檔的思路是 將新的“plugins文件夾, 二進(jìn)制文件xchain,xchain-cli”這些文件將老版本的替換掉 然后重啟即可

cp -R output/plugins/ pn1/plugins/
cp -R output/xchain pn1/xchain
cp -R output/xchain-cli pn1/xchain-cli
cp -R output/plugins/ pn2/plugins/
cp -R output/xchain pn2/xchain
cp -R output/xchain-cli pn2/xchain-cli
cp -R output/plugins/ pn3/plugins/
cp -R output/xchain pn3/xchain
cp -R output/xchain-cli pn3/xchain-cli
百度區(qū)塊鏈所遇到的問題及處理匯總

 

升級完成 保留了老數(shù)據(jù)

新增出塊節(jié)點(diǎn) 節(jié)點(diǎn)數(shù)據(jù)同步中

  • 如何新增節(jié)點(diǎn)

a、若是新增一個同步節(jié)點(diǎn) 不需要修改 創(chuàng)世塊配置 不需要刪除老數(shù)據(jù) 只需要修改 yaml文件即可 然后啟動即可

https://xuperchain.readthedocs.io/zh/latest/advanced_usage/multi-nodes.html?highlight=%E5%A2%9E%E5%8A%A0%E8%8A%82%E7%82%B9#id1

b、若是新增一個出塊節(jié)點(diǎn) 這個不僅僅需要修改yaml文件還需要修改創(chuàng)世塊配置 所以需要刪除老數(shù)據(jù)

  • 系統(tǒng)如何選擇出塊節(jié)點(diǎn)

此時系統(tǒng)在選擇出塊節(jié)點(diǎn)的算法中會判斷該節(jié)點(diǎn)是否已同步完成 若已同步完成才會選擇該節(jié)點(diǎn)作為當(dāng)前節(jié)點(diǎn)

  • 查詢請求過來如何處理

查詢的是當(dāng)前同步到的狀態(tài)

  • 新搭的場景 出塊節(jié)點(diǎn)需要再創(chuàng)世快配置中配置 ;非新搭場景 添加一個出塊節(jié)點(diǎn) 先修改yaml文件 跑起來 然后進(jìn)行token抵押 才能出塊

若一筆上鏈交易 在系統(tǒng)確認(rèn)好一個出塊節(jié)點(diǎn)之后 若突然這個節(jié)點(diǎn)掛掉了 此時系統(tǒng)是如何處理的這筆交易呢

如果發(fā)起一筆上鏈交易 交易在出塊前會在各個節(jié)點(diǎn)間轉(zhuǎn)發(fā),該節(jié)點(diǎn)掛掉其它節(jié)點(diǎn)可以繼續(xù)打包

如何使用xpos共識

百度區(qū)塊鏈所遇到的問題及處理匯總

 

加上這個配置就是使用xpos,也就是(tdpos+chainedBFT)

不加就是tdpos,不能保證安全性

如果通過sdk調(diào)用合約上鏈的時候 節(jié)點(diǎn)若是響應(yīng)超時的話或因為網(wǎng)絡(luò)問題沒有收到響應(yīng) 此時并沒有收到hash值

  • 交易hash沒有返回一定沒有上鏈,說明預(yù)執(zhí)行失敗
  • 首先客戶端向節(jié)點(diǎn)發(fā)起交易預(yù)執(zhí)行請求,預(yù)執(zhí)行結(jié)束后會返回客戶端讀寫集,這時客戶端會在本地計算txhash,如果沒有得到txhash說明交易根本不可能上鏈 計算txhash成功后,才會將完整的tx發(fā)送至網(wǎng)絡(luò)

感謝

非常感謝百度鏈的技術(shù)大牛的支持 超哥

分享到:
標(biāo)簽:區(qū)塊
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定