web3j呼叫智能合約的問題 - 數位貨幣

David avatar
By David
at 2018-02-08T13:13

Table of Contents

大家好,我最近在研究私有鏈的部份,

並且用ethereum wallet發佈了一個智能合約在上面,

該智能合約很簡單,只是一個map形式的結構(key,value),

一個方法是新增,一個方法是查詢,

目前使用web3j的方式來呼叫,

但我發現短時間內大量使用web3j sendAsync()呼叫該智能合約做新增的動作,

會漏掉中間某些數據沒有成功上去,

但若使用send(),會需要10幾秒的時間才結束,太慢了,

在網路上找了很久,發現可能和nonce有關係?

不知道有誰有類似經驗的,可以回答我該怎麼做嗎?謝謝
----------------------------------------------------------------
智能合約:
contract dataStore {
struct DataStruct {
string key;
string value;
}

mapping (string => DataStruct) datas;

function newData(string key, string value) public {
datas[key] = DataStruct(key, value);
}



function getValue(string key) public view returns (string value) {
DataStruct storage c = datas[key];
return c.value;
}
}


web3j程式:

String url = "http://localhost:8545";
Web3j web3j = Web3j.build(new HttpService(url));
Credentials credentials = null;
credentials = WalletUtils.loadCredentials("xxx", account);
DataStore contract = DataStore.load(address, web3j, credentials,
Contract.GAS_PRICE, Contract.GAS_LIMIT);
contract.newData("test", "testxxxxx").sendAsync();

--

All Comments

Jacky avatar
By Jacky
at 2018-02-12T13:28
你是用parity還是geth?
Lily avatar
By Lily
at 2018-02-13T06:23
我是用geth,發佈智能合約的方式是用mist發佈的。再使
用tuffle將abi轉成java檔
Genevieve avatar
By Genevieve
at 2018-02-17T04:19
TX Nonce 你可以自己設定 或是讓node幫你決定 最好方
式你自己架一個node 自己送tx到自己的node 讓你的node
廣播transaction出去
Poppy avatar
By Poppy
at 2018-02-17T05:56
你要不要把code貼出來
我的猜想是sendAsync來不及幫你遞增nonce
ethereum的設計是一個帳號的交易nonce必須是遞增數列
Olive avatar
By Olive
at 2018-02-21T04:45
短時間送出太多tx,可能會造成中間有重複的nonce
重複nonce的tx都會被拒絕處理
Blanche avatar
By Blanche
at 2018-02-22T05:26
所以才會造成有些成功有些失敗的現象
Hamiltion avatar
By Hamiltion
at 2018-02-26T23:06
印象中web3是不處理nonce的, 所以要嘛client side自
己指定 不然就是node給. 所以聽起來像是node使用的版
本有TX nonce 同步的問題
Faithe avatar
By Faithe
at 2018-02-28T09:47
要去看node 的 log才知道發生什麼問題
Edward Lewis avatar
By Edward Lewis
at 2018-03-02T06:26
目前應該是找到方法解決了,我自己給nonce並且遞增就可
以正常的把資料往上送,謝謝上面二位給我很大的幫助

請問A卡跟N卡各適合挖那些幣?

Ivy avatar
By Ivy
at 2018-02-08T12:01
請問一下 A卡適合挖那些幣 N卡適合挖那些幣 現在弄了幾張p106跑eth效益不是很好 有沒有推薦的好幣挖挖 - ...

看來比特幣並不具有避險的功能

Aaliyah avatar
By Aaliyah
at 2018-02-08T12:01
※ 引述《andrew540686 (magickidnapper)》之銘言: : 不知道樓主是不是在反串 : 但看到底下一面倒的留言 : 這關注區塊鏈八個多月的不才小弟想來發表淺見 : 這波股市跟虛擬貨幣市值一起大跌就說不是避險標的我覺得有點誤導 認為虛擬貨幣是避險標的的人應該要自己提出證明跟說法 而不是 ...

美國otcm 市場 gbtc

Donna avatar
By Donna
at 2018-02-08T10:20
我抱著分享的心態 之前在ptt國外投資投資版請教有無相關bitcoin 的 etf 有版友推薦這隻 但這隻是美國的股票 各位有投資bitcoin先進對這隻有無什麼評價? 小弟昨天也有進場買 被小尬了一下! - ...

看來比特幣並不具有避險的功能

Eartha avatar
By Eartha
at 2018-02-08T00:53
※ 引述《ccclemon (nn)》之銘言: : 如題 : 跟景氣,股市,升息幾乎連動, : 大戶的操作手法跟炒股一樣, : 之前說比特幣是數位黃金, : 災難來時資金會進去可避險, : 在大戶狂賣認證下真的是一場笑話, : 大戶主力都把它當股票甚至是更投機得商品在操作, : 還數位黃金勒.... : 真的 ...

有人知道各幣的漲跌為何幾乎都是同時的

Carolina Franco avatar
By Carolina Franco
at 2018-02-07T23:33
除了主力因素外? 就真的是主力因素了嗎? 主力真的有錢到可以撼動top 10幣種市場? 或是有財經專家可以解釋一下幣友心裡... 這問題想蠻久了哈哈哈... - ...