以太坊·將資料寫入到區塊鏈中

雪花又一年發表於2018-04-18

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
本文來源:騰訊雲 雲+社群,如需轉載請聯絡原作者。


相關文章