天天看点

以太坊·将数据写入到区块链中

5.5. 实用例子

5.5.1. 数据写入到区块链中

做一笔交易,并写入数据到区块链中

let Web3 = require("web3");     let fs = require("fs");     let web3 = new Web3("http://localhost:8545");     let log = {         time:(new Date).getTime(),         type:"info",         msg:"Web3 Test!!!"     };     let str = JSON.stringify(log);     console.log(str);     let data = Buffer.from(str).toString('hex');     data = '0x'+data;     console.log(data);     //将数据写入到交易中     let coinbase = "0x5c18a33df2cc41a1beddc91133b8422e89f041b7"     console.log(coinbase)     let user1 = "0xc2b9e316f246d35052118e51b55c75bfe99d247e";     web3.eth.personal.unlockAccount(coinbase, "chen1980");     let address = web3.eth.sendTransaction({         from:coinbase,         to:user1,         value:'0x00',         data:data     },function(error, hash){         console.log(hash);     });      

运行上面程序,会产生一个交易,记下hash值,然后启动挖矿。

> miner.start();     null     # 过一段时间后停止     > miner.stop();     true      

然后查看这比交易

let Web3 = require("web3");     let fs = require("fs");     let web3 = new Web3("http://localhost:8545");     let address ="0xb15681eb4bdb6b9670d305fb341ebbc95d45c2ede0ea5034ef432b74f30b1b4f";     //从交易地址获取数据     web3.eth.getTransaction(address).then(console.log);     web3.eth.getTransaction(address,function(error, result){         //console.log(result);         inputData = result.input;         res_str = Buffer.from(inputData.replace('0x',''),'hex').toString();         res_json = JSON.parse(res_str);         console.log(res_json);     });      

结果输出

{ blockHash: '0x78dacc2af60900d2e4cae90b71e27446e6e883df36c53f21cbc9e071f7a586f4',       blockNumber: 1258,       from: '0x5c18a33DF2cc41a1bedDC91133b8422e89f041B7',       gas: 90000,       gasPrice: '18000000000',       hash: '0xb15681eb4bdb6b9670d305fb341ebbc95d45c2ede0ea5034ef432b74f30b1b4f',       input: '0x7b2274696d65223a313531383933313435323537372c2274797065223a22696e666f222c226d7367223a22576562332054657374212121227d',       nonce: 4,       to: '0xc2b9e316F246d35052118E51B55C75BfE99d247e',       transactionIndex: 0,       value: '0',       v: '0x41',       r: '0x7fcd86c7fd975a0e98bd0e61a99da950b0155cd6c4581fefa4defbdcd404a930',       s: '0x16f14ce1fbfadb9d59f343f8ac235cdd73dcedec5db1025ef91206b8bb17a827' }     { time: 1518931452577, type: 'info', msg: 'Web3 Test!!!' }      

{ time: 1518931452577, type: 'info', msg: 'Web3 Test!!!' } 就是保存在区块链中的数据。

原文发布时间为:2018-02-19

本文作者:netkiller

本文来源:

腾讯云 云+社区

,如需转载请联系原作者。