您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何將任意數(shù)據(jù)保存到以太坊區(qū)塊鏈,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
如何將任意數(shù)據(jù),比如圖像或文本寫(xiě)入以太坊區(qū)塊鏈呢?下面將講解如何使用web3.js實(shí)現(xiàn)這一功能并給出相應(yīng)的實(shí)現(xiàn)代碼。實(shí)現(xiàn)任意數(shù)據(jù)上鏈的核心是web3.eth.sendTransaction()方法的使用,我們將借助一個(gè)轉(zhuǎn)賬交易來(lái)完成任意數(shù)據(jù)上鏈的任務(wù)。在要發(fā)送的交易對(duì)象中,使用data
字段就可以傳入任意的16進(jìn)制字符串。
我們可以使用web3.toHex()方法將一個(gè)字符串轉(zhuǎn)換為16進(jìn)制字符串:
let data = web3.toHex('你可以將任意數(shù)據(jù)寫(xiě)入以太坊區(qū)塊鏈')
得到的data值為:0x4f6053ef4ee55c064efb610f6570636e519951654ee5592a574a533a575794fe
。
當(dāng)然不一定需要使用web3.toHex()
方法,可以使用任何能夠得到16進(jìn)制串的方法,例如在NodeJS中使用Buffer
:
let data = '0x' + Buffer.from('使用Buffer更好處理圖像數(shù)據(jù)').toString('hex')
得到的data值為:0xe4bdbfe794a8427566666572e69bb4e5a5bde5a484e79086e59bbee5838fe695b0e68dae
。
接下來(lái)然后設(shè)置要發(fā)送的交易對(duì)象,我們需要借助一個(gè)轉(zhuǎn)賬交易來(lái)實(shí)現(xiàn)數(shù)據(jù)上鏈,因此設(shè)置的主要字段是轉(zhuǎn)出賬戶(hù)from,轉(zhuǎn)入賬戶(hù)to,轉(zhuǎn)賬金額value,當(dāng)然,少不了data,我們就是為了它才要搞一個(gè)交易:
let txo = { from: web3.eth.accounts[0], to: web3.eth.accounts[1], value:'0x00', data: data }
如果你只有一個(gè)賬戶(hù),也可以自己轉(zhuǎn)給自己:)
最后調(diào)用web3.eth.sendTransaction()
方法即可:
web3.eth.sendTransaction(txo, (error, hash) => console.log(hash));
當(dāng)交易成功后,你可以使用etherscan.io來(lái)查看交易信息中的input data
。
關(guān)于如何將任意數(shù)據(jù)保存到以太坊區(qū)塊鏈就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。