[Coin] IOTA如何有效率地發錢:Send Bundle

作者: ARAMonly (咆嘯深淵)   2019-07-18 17:43:47
這篇文章會完整描述我研究的過程,
如果想直接看程式碼,
可以直接跳到【mainnet發送】。
【起因】
文章代碼#1T66Qw6Y (DigiCurrency),
由於第一次發錢使用Trinity Wallet,
當時不曉得發送出一筆交易後,要再發送下一筆交易,
需要等待前一筆交易確認才能成功發送,
雖然只有40筆左右要發,但以平均每筆交易需要花費10分鐘來算,
這次發送總共費時約6個小時左右。
【求解】
在Discord尋求有沒有使用Trinity Wallet同時向多人發送IOTA,
而且不需等待前一筆交易確認的方法,
得到了可以使用執行script的方式:
https://docs.iota.org/docs/iota-basics/0.1/how-to-guides/send-bundle
【嘗試】
文件最下方有個「Run the code」,可以在網頁上直接執行script,
預設的script是在devnet一次發送兩筆交易資訊。
那如果要不透過網頁在你自己的環境執行呢?
文件有提到基本環境需要:
‧Node.js 8, or Node.js 10 or higher. We recommend the latest LTS.
-> 可以到這下載安裝https://nodejs.org
‧A code editor such as Visual Studio Code
-> 可以到這下載安裝https://code.visualstudio.com
‧An Internet connection
-> 呃...這項我就不解釋了XD
環境準備完後,就可以開啟Visual Studio Code,
https://imgur.com/xkranvh
首先,創建一個資料夾來放置相關的程式碼File -> Open Folder,
我選擇放在路徑C:\IOTA\Dev,
https://imgur.com/1PjZLOF
然後創建一個檔案如SentBundle.js,
https://imgur.com/8ktFQVb
把文件上的程式碼複製貼上並存檔,
https://imgur.com/hGszYjZ
然後執行這段程式Terminal -> New Terminal,
輸入「node SentBundle.js」執行,
https://imgur.com/UdzCmTX
會出現錯誤訊息Cannot find module '@iota/core',
這表示還沒裝client library,所以出現這樣的錯誤訊息。
https://imgur.com/4J6B1N9
文件有提到,
https://imgur.com/au6OlBO
所以跟著指引,
https://docs.iota.org/docs/getting-started/0.1/tutorials/get-started
找到安裝client library的指令「npm install @iota/core」,執行他!
https://imgur.com/CX1kNMf
安裝完成後再次執行剛剛沒成功的「node SentBundle.js」,
喔不,又出現了錯誤訊息certificate has expired,
https://imgur.com/mER3S0z
沒事沒事,這應該是節點的問題,換個節點,
將第8行改為provider: 'https://nodes.devnet.thetangle.org:443/',
再執行一次「node SentBundle.js」,
https://imgur.com/eL1tKKw
太好了,發送成功!
可以用https://devnet.thetangle.org查詢剛剛發送的Bundle。
https://reurl.cc/LkRo9
【mainnet發送】
在devnet發送成功了,
那開始在mainnet上發送吧!
直接看程式碼吧!
https://pastebin.com/NxGGAf67
主要重點是95行的sendTrytes的第3個參數minWeightMagnitude(最小權重大小),
devnet為9,在mainnet為14,如果這個數值跟devnet一樣設9,則在mainnet會發送失敗。
我還有改寫了官方文件上的一些code,
因為官方文件的寫法要發送大量交易會比較麻煩。
第10行provider是放節點的URL,
第13行seed是放你的種子,
第19行recipientAddressArray是放要接收IOTA的地址,有效地址為81碼,
使用Trinity Wallet產生的地址會有90碼,最後9碼為checksum可以直接去除,
上面那些地址是在我第二次發錢時蒐集的地址,
文章代碼#1T9g5jzb (DigiCurrency),
測試時要發錢給他們,我想他們應該也會很樂意地收下XD。
然後這邊的重點還有一個,就是節點的選擇,
當時在發錢使用https://nodes.thetangle.org:443,
得到了錯誤訊息Unhandled rejection Request error: Too Many Requests,
在https://iota-nodes.net找了幾個節點試試,
後來使用http://207.180.224.65:14265發送成功!
https://imgur.com/hwNWJrL
可以用https://thetangle.org查詢剛剛發送的Bundle。
https://reurl.cc/vZrok
以上,希望對各位有幫助,
若有錯誤或觀念上的不正確,
歡迎下方留言:)
IOTA還錢!
歡迎斗內IOTA
QFDDKQMMTNXXGKNRZUOES9HVLSYGILRBHUQGRVJEKRUAZOUDWK
LXVMCLAIGS9BNBDSPQAKYCWWBUGOOMXSHCD99GMB
https://imgur.com/63hLixo
simpleledger:qpl00gxv2x5ddf50w9zxx4lamd5ecz5k7s54fqx3kn
作者: b24333666 (比飛笨)   2019-07-18 17:46:00
ㄊㄨㄟ推
作者: poorviv (na)   2019-07-18 17:53:00
作者: a23962787 (不擲骰子的貓)   2019-07-18 17:58:00
推 難怪我剛剛收到訊息
作者: jorden (William)   2019-07-18 18:19:00
作者: remia81   2019-07-18 18:40:00
作者: jixian (litMager)   2019-07-18 19:02:00
推 ,但是看到iota就一定推要還錢
作者: lolo0856 (lolot)   2019-07-18 19:09:00
推技術文 估計10星
作者: dryden (Dryden)   2019-07-18 19:20:00
作者: DarkerDuck (達克鴨)   2019-07-18 20:21:00
978字 * 10星 = 9780 PCHhttps://tinyurl.com/y46govog目前看起來真的要大規模打賞最實用的還是BCH一秒發25筆沒問題,或是一次一百人,手續費也是沒感覺https://tinyurl.com/y4vpp9xr
作者: Q8i (Q8i)   2019-07-18 21:53:00
技術文推!文組表示看的很辛苦XD
作者: AtsuHiro (狐狸老師)   2019-07-18 22:18:00
推 好文
作者: itsdelovely (It's De-Lovely)   2019-07-18 22:22:00
作者: wlo3176844 (大可)   2019-07-19 00:27:00
iota還錢
作者: john371911 (醬廖)   2019-07-19 01:27:00
不明覺厲推。
作者: camellala (茸硬抬名器)   2019-07-19 01:41:00
認真優文,推
作者: MIN945 (MIN945)   2019-07-19 06:44:00
iota還錢~
作者: leftc (阿左)   2019-07-19 15:07:00
推技術文,有考慮做自動reattach或promote嗎XD
作者: ARAMonly (咆嘯深淵)   2019-07-19 19:37:00
官方文件有現成的https://reurl.cc/yqr4l

Links booklink

Contact Us: admin [ a t ] ucptt.com