導航:首頁 > 以太坊區 > 以太坊批量轉賬順序

以太坊批量轉賬順序

發布時間:2024-05-25 11:24:02

A. 使用Web3J與第三方合約交互——批量轉賬

之前使用NodeJs與智能合約交互,都是訪問的自己部署的合約。最近要對線上第三方合約進行轉賬操作,人數比較多,一筆筆操作起來手指都點斷了還容易出錯。既然代幣Token都遵守ERC20協議,肯定有統一的Transfer(轉賬)方法供客戶端調用,那麼編寫程序實現自動轉賬應該可以實現,去查了相關資料發現web3j是不錯的選擇。

輕量級客戶端與以太坊交互的Java庫。

既然是調用第三方合約那麼肯定需要知道合約地址,合約地址定義了到哪裡去訪問合約;
ABI(Application Binary Interface): 應用程序二進制介面,定義了智能合約提供的方法功能

若是無法獲取到ABI介面,也可以使用solc編譯生產bin和abi文件。

(生產代理類時可以指定包路徑和類名)

這樣一來,便可以使用程序完成批量轉賬操作。

後來研究發現,使用NodeJs直接調用Web3也可以實現對應功能,不過還是對Java更熟悉一些,就採用了Java的方式。

B. 【ETH錢包開發03】web3j轉賬ETH

在之前的文章中,講解了創建、導出、導入錢包。
【ETH錢包開發01】創建、導出錢包
【ETH錢包開發02】導入錢包

本文主要講解以太坊轉賬相關的一些知識。交易分為ETH轉賬和ERC-20 Token轉賬,本篇先講一下ETH轉賬。

1、解鎖賬戶發起交易。錢包keyStore文件保存在geth節點上,用戶發起交易需要解鎖賬戶,適用於中心化的交易所。

2、錢包文件離線簽名發起交易。錢包keyStore文件保存在本地,用戶使用密碼+keystore的方式做離線交易簽名來發起交易,適用於dapp,比如錢包。

本文主要講一下第二種方式,也就是錢包離線簽名轉賬的方式。

交易流程
1、通過keystore載入轉賬所需的憑證Credentials
2、創建一筆交易RawTransaction
3、使用Credentials對象對交易簽名
4、發起交易

注意以下幾點:

1、Credentials
這里,我是通過獲取私鑰的方式來載入 Credentials

還有另外一種方式,通過密碼+錢包文件keystore方式來載入 Credentials

2、nonce

nonce是指發起交易的賬戶下的交易筆數,每一個賬戶nonce都是從0開始,當nonce為0的交易處理完之後,才會處理nonce為1的交易,並依次加1的交易才會被處理。

可以通過 eth_gettransactioncount 獲取nonce

3、gasPrice和gasLimit
交易手續費由gasPrice 和gasLimit來決定,實際花費的交易手續費是 gasUsed * gasPrice 。所有這兩個值你可以自定義,也可以使用系統參數獲取當前兩個值

關於 gas ,你可以參考我之前的一篇文章。
以太坊(ETH)GAS詳解

gasPrice和gasLimit影響的是轉賬的速度,如果gas過低,礦工會最後才打包你的交易。在app中,通常給定一個默認值,並且允許用戶自己選擇手續費。

如果不需要自定義的話,還有一種方式來獲取。獲取以太坊網路最新一筆交易的 gasPrice ,轉賬的話, gasLimit 一般設置為21000就可以了。

Web3j還提供另外一種簡單的方式來轉賬以太幣,這種方式的好處是不需要管理nonce,不需要設置gasPrice和gasLimit,會自動獲取最新一筆交易的gasPrice,gasLimit 為21000(轉賬一般設置成這個值就夠用了)。

這個問題,我想是很多朋友所關心的吧。但是到目前為止,我還沒有看到有講解這方面的博客。

之前問過一些朋友,他們說可以通過區塊號、區塊哈希來判斷,也可以通過Receipt日誌來判斷。但是經過我的一番嘗試,只有 BlockHash 是可行的,在web3j中根據 blocknumber 和 transactionReceipt 都會報空指針異常。

原因大致是這樣的:在發起一筆交易之後,會返回 txHash ,然後我們可以根據這個 txHash 去查詢這筆交易相關的信息。但是剛發起交易的時候,由於手續費問題或者乙太網絡擁堵問題,會導致你的這筆交易還沒有被礦工打包進區塊,因此一開始是查不到的,通常需要幾十秒甚至更長的時間才能獲取到結果。我目前的解決方案是輪詢的去刷 BlockHash ,一開始的時候 BlockHash 的值為0x00000000000,等到打包成功的時候就不再是0了。

這里我使用的是rxjava的方式去輪詢刷的,5s刷新一次。

正常情況下,幾十秒內就可以獲取到區塊信息了。

區塊確認數=當前區塊高度-交易被打包時的區塊高度。

C. ETH以太坊怎樣進行一鍵發幣

以太坊一鍵發幣,具體的技術內容不太了解,但是這樣的操作安全嗎?數字金融安全允許一鍵發幣這種操作嗎?

D. 以太幣轉帳速度

兩小時至24小時以內。
可根據轉賬支付的礦工費,快的一分鍾能到,慢的也能在幾分鍾到。一般來說轉賬BTC,ETH等其它代幣到賬的時間在兩個小時以內,快的情況也大概需要30分鍾,所以轉賬請把握好到賬時間。
以太坊已經做到了每秒處理5次交易,如果它超過6,那麼它也處於峰值容量。另一方面,Uber平均每秒鍾有12次乘車,PayPal幾百次,Visa數千次,大型股票交易所成千上萬,而在物聯網中,討論的是每秒數十萬。

E. 以太坊轉賬流程

發起:用戶在本地的以太坊錢包軟體中選擇要發送的交易地址(From)、輸入目標地址(To)、金額(Value)、是否部署或調用合(Data)、手續費單價(Gasprice)等,確認發送至以太坊節點節點和錢包可以是同一台
廣播:節點收到(或自己發起)交易後,會對交易進行驗證。驗證:交易的簽名、發起賬號的余額是否能支付轉賬余額與手續費、Nonce是否為賬號已發出的交易數。驗證為合法後,將交易加入節點的交易池中交易池中存儲著待打包的交
安裝以太坊瀏覽器錢包插件,創建錢包,獲取虛擬以太幣,進行轉賬交易。 實驗內容 學習 初識以太坊,發送交易 1.學習《初始以太坊,發送交易》,虛擬以太幣交易。

F. 浠ュお鍧奅TH鎬庢牱鎵歸噺杞璐︼紵

涓銆佷互澶鍧奅TH鎬庢牱鎵歸噺杞璐︼紵

.com閽卞寘鏈夌洿鎺ユ壒閲忚漿璐﹀伐鍏鳳紝鏂逛究鐨勫緢銆

浜屻佹瘮鐗規淳閽卞寘鎵歸噺鍦板潃璧勪駭鎬庝箞鍚堝苟鍒頒竴璧

姣旂壒媧鵑挶鍖呮壒閲忓湴鍧璧勪駭鎬庝箞鍚堝苟鍒頒竴璧

1銆佺『璁ゆ偍瑕佸彂閫佺殑甯佺嶏紝濂介渶瑕佹敹嬈劇殑鍦板潃

?

2銆侀摼鎺 BITHD錛岀偣鍑昏漿璐︼紝杈撳叆鏀舵懼湴鍧錛屾牳瀵規敹嬈懼湴鍧錛岃緭鍏ヨ佽漿璐︾殑閲戦

?

?

浠ヤ笂灝辨槸姣旂壒媧鵑挶鍖呬嬌鐢ㄦ暀紼嬶細BITHD杞璐︽暀紼嬬殑璇︾粏鍐呭癸紝鏇村氬叧浜嶣ITHD杞璐︽暀紼嬬殑璧勬枡璇峰叧娉ㄨ剼鏈涔嬪跺叾瀹冪浉鍏蟲枃絝狅紒

鏈絝欐彁閱掞細鎶曡祫鏈夐庨櫓錛屽叆甯傞』璋ㄦ厧錛屾湰鍐呭逛笉浣滀負鎶曡祫鐞嗚儲寤鴻銆   Tag錛氭瘮鐗規淳   閽卞寘   BITHD

涓夈佷互澶鍧奅TH鎬庢牱鎵歸噺杞璐?

bitpie 姣旂壒媧鵑挶鍖 浜叉祴鍙鐢ㄣ

G. 楸兼睜閲岀殑浠ュお鍧婃庝箞鏍蜂氦


楸兼睜閲岀殑浠ュお鍧婃庝箞浜ゆ槗
濡傛灉浣犲湪楸兼睜閲岀殑浠ュお鍧婇挶鍖呴噷鏈変竴瀹氱殑浠ュお甯侊紝浣犲彲浠ュ湪閽卞寘閲岃繘琛屼氦鏄撱
鍏蜂綋姝ラゅ備笅錛
1.鎵撳紑浠ュお鍧婇挶鍖咃紝榪涘叆鈥滀氦鏄撯濋〉闈銆
2.鐐瑰嚮鈥滃彂閫佲濇寜閽錛屽~鍐欎氦鏄撶殑鐩鏍囧湴鍧鍜岃漿璐﹂噾棰濈瓑淇℃伅銆
3.紜璁や氦鏄撲俊鎮鏃犺鍚庯紝鐐瑰嚮鈥滃彂閫佷氦鏄撯濇寜閽銆
4.緋葷粺浼氭彁紺轟綘杈撳叆閽卞寘瀵嗙爜榪涜岀『璁わ紝杈撳叆瀵嗙爜鍚庣『璁や氦鏄撱
5.浜ゆ槗鍙戦佹垚鍔熷悗錛屼綘鍙浠ュ湪鈥滀氦鏄撹板綍鈥濋〉闈㈡煡鐪嬩氦鏄撶殑鐘舵佸拰浜ゆ槗璇︽儏銆
闇瑕佹敞鎰忕殑鏄錛屽湪榪涜屼互澶鍧婁氦鏄撴椂錛岄渶瑕佹敮浠樹竴瀹氱殑鐕冩皵璐癸紙GasFee錛夛紝榪欐槸鐢ㄦ潵鏀浠樹氦鏄撴墜緇璐圭殑銆傜噧姘旇垂鐨勫ぇ灝忓彇鍐充簬浜ゆ槗鐨勫嶆潅紼嬪害鍜岀綉緇滄嫢鍫墊儏鍐電瓑鍥犵礌錛岀噧姘旇垂瓚婇珮錛屼氦鏄撶殑澶勭悊閫熷害瓚婂揩銆傚洜姝わ紝濡傛灉浣犲笇鏈涗氦鏄撹兘澶熷敖蹇寰楀埌澶勭悊錛屽彲浠ラ傚綋鎻愰珮鐕冩皵璐圭殑閲戦濄

H. USDT_ERC20和ERC20代幣轉賬提幣API介面的調用流程

USDT_ERC20和ERC20的代幣都可以按照這個教程來只是代幣名字不一樣:

ERC20的USDT,就是以太坊的代幣。轉賬手續費低,速度快。

1、ERC20地址收到USDT後(ztPay平台會根據應用配置裡面的通知地址進行通知),USDT轉賬時需要扣ETH作為手續費。ERC20地址收到USDT後是沒有ETH的。那麼就需要充值ETH。

2、在ztPay平台創建一個ETH地址,往裡面沖入一定數量ETH作為手續費資金池。 這個可以在線介面處創建地址 或者自己調用介面創建地址。

3、等這個地址有了ETH,就可以調用ETH的轉賬介面,往收到USDT_ERC20的地址裡面充值0.0035ETH以上作為手續費 。

因為USDT_ERC20轉賬是扣的當前這個轉出地址裡面的eth作為手續費。

4、總結:USDT_ERC20這個當前地址裡面有usdt,也要有 0.0035以上的eth手續費。那麼才可以調用轉賬介面,開始轉賬。

USDT_ERC20轉賬流程:

第一步:首先通過獲取地址余額介面(name=usdt_erc20),查詢USDT余額包括ETH手續費余額。

第二步:檢測ETH手續費是否大於0.0035ETH,大於則即可調用介面轉出USDT ,轉賬完畢。ETH以太坊網路gas limit和gas price設置

第三步:ETH手續費不足則 調用之前准備的ETH手續費資金池地址,往這個地址裡面轉入至少0.0035的ETH。完畢。等下次執行轉賬時即可轉賬成功。

做一個定時任務最好5以上分鍾執行一次可以通過以太坊瀏覽器來查詢相關金額:https://eth.tokenview.com/cn/ 或者 https://etherscan.io/

介面參考資料: ztPay數字貨幣介面文檔

I. ETH轉賬的2種方式的對比

web3j支持使用以太坊錢包文件(推薦)和乙太網客戶端管理命令來發起一筆交易。當你創建了一個擁有以太幣的賬戶後,你可以通過以下兩種交易機制,和以太坊網路(私網/公網)交易:

這里主要講一下 線下簽名交易(Offline transaction signing) 。線下簽名交易允許你使用web3j提供的錢包賬戶發起交易,你完全控制自己的私鑰,交易發送到網路上的其它節點並廣播。

線下簽名交易使用 RawTransaction 對象來完成,一共有如下幾步:

1、通過私鑰或密碼+錢包文件(keystore)來載入轉賬憑證Credentials
2、獲取發起轉賬賬戶的nonce 值,也就是第幾筆交易
3、創建 RawTransaction交易 對象
4、簽名 RawTransaction 對象,也就是對交易做簽名
5、發送交易( RawTransaction 對象)給節點處理。
6、獲取交易哈希值TxHash

以太坊實戰-再談nonce使用陷阱: https://blog.csdn.net/wo541075754/article/details/79054937

此外,還有一種簡單的轉賬方式

這種方式,不需要自己管理nonce。

這2種方式都是離線交易,先組裝交易,然後發送到鏈上。

參考:
https://docs.web3j.io/getting_started.html#transactions
https://www.jianshu.com/p/6650d2a3aea9

閱讀全文

與以太坊批量轉賬順序相關的資料

熱點內容
跑路的虛擬貨幣平台 瀏覽:919
比特幣轉賬如何用比特幣加速 瀏覽:856
說的Anchorage數字貨幣理財 瀏覽:785
數字貨幣推廣項目 瀏覽:198
中囯農業銀行與數字貨幣 瀏覽:245
mac可以挖比特幣嗎 瀏覽:944
比特幣中國什麼時候停止提現 瀏覽:447
比特幣中國市場歷史價格 瀏覽:354
支付寶上有比特幣嗎 瀏覽:910
100比特幣是多少錢一個 瀏覽:315
迪拜比特幣會議2018 瀏覽:586
ae幣區塊鏈 瀏覽:543
數字貨幣BTU 瀏覽:306
數字貨幣點位盤子 瀏覽:500
比特幣合約保證金多少qian 瀏覽:461
比特幣價格今日行情泰 瀏覽:125
2018兩會區塊鏈 瀏覽:187
為什麼要打壓虛擬貨幣 瀏覽:87
比特幣十大受益股票 瀏覽:695
評價好的虛擬貨幣開發 瀏覽:154