溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何將任意數(shù)據(jù)保存到以太坊區(qū)塊鏈

發(fā)布時(shí)間:2021-12-22 15:52:16 來(lái)源:億速云 閱讀:236 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這篇文章給大家介紹如何將任意數(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)制字符串。

將數(shù)據(jù)轉(zhuǎn)換為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

聲明交易對(duì)象

接下來(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)給自己:)

發(fā)送交易

最后調(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ò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI