分投趣(Fintoch)系統(tǒng)開發(fā)(詳細及方案)丨Fintoch(分投趣)系統(tǒng)開發(fā)(規(guī)則及源碼)
區(qū)塊頭和區(qū)塊體數(shù)據(jù)也會被當作輸入數(shù)據(jù)做一次Hash運算,其運算結(jié)果會被存儲在下一個區(qū)塊的區(qū)塊頭中,這樣任何區(qū)塊內(nèi)容的修改都會反映到區(qū)塊的Hash值上,而區(qū)塊的Hash值又是下一個區(qū)塊的輸入數(shù)據(jù),它又會被當作新區(qū)塊的數(shù)據(jù)參與一次新區(qū)塊的Hash運算,隨著時間的推移和交易量的增加,所有的區(qū)塊會通過保存前一個區(qū)塊的Hash運算結(jié)果的方式組成一條鏈。
智能合約在區(qū)塊鏈上的可執(zhí)行代碼是一種類似匯編語言的指令集,這些指令集通過EVM的解釋和執(zhí)行,對區(qū)塊鏈的狀態(tài)進行讀寫,實現(xiàn)合約規(guī)定的業(yè)務(wù)邏輯。因此通過Solidity這種高級編程語言,加上Solidity編譯器,可以將高級語言編譯成匯編指令集碼,再將其部署到區(qū)塊鏈上執(zhí)行。
賬戶發(fā)起創(chuàng)建合約交易時,搭建案例及源碼唯:MrsFu123,以太坊交易中會加載合約創(chuàng)建代碼,礦工在打包交易時會執(zhí)行該合約的初始化代碼,并生成智能合約對應的EVM代碼和該合約對應的賬戶地址,當該交易所在的區(qū)塊被成功打包并同步到其他節(jié)點時,其他節(jié)點就可以通過消息調(diào)用來訪問該合約對外開放的接口和功能。
const MyContract=artifacts.require("./MyContract.sol");
module.exports=async function(callback){
const contract=await MyContract.deployed()
const value=await contract.get()
console.log("Value:",value)
}
//導入dotenv庫創(chuàng)用于讀取`.env`文件中的設(shè)置
require('dotenv').config();
//導入truffle-hdwallet-provider庫重建錢包
const HDWalletProvider=require('truffle-hdwallet-provider');
module.exports={
networks:{
development:{
host:"127.0.0.1",//Localhost(default:none)
port:7545,//Standard Ethereum port(default:none)
network_id:"*",//Any network(default:none)
},
//Useful for deploying to a public network.
//NB:It's important to wrap the provider as a function.
kovan:{
provider:()=>new HDWalletProvider(
process.env.MNEMONIC,
process.env.INFURA_API_KEY
),
gas:5000000,
gasPrice:25000000000,
network_id:42
},
},
solc:{
optimizer:{
enabled:true,
runs:200
}
}
}