真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

區(qū)塊鏈HelloWorld--基于以太坊的投票Dap-創(chuàng)新互聯(lián)

指路牌

  • 以太坊
  • 區(qū)塊鏈
  • Dapp
  • 以太坊hello world

環(huán)境

windows 10 64bit

在紅古等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,紅古網(wǎng)站建設(shè)費(fèi)用合理。

參考博客

youclavier -- 以太坊投票Dapp教程

背景

準(zhǔn)備接手一個IPFS+Ethereum的項(xiàng)目,先學(xué)習(xí)一下Ethereum,并嘗試完成一個Hello World。

步驟

  1. 參考我另一片blog, 安裝nvm
  2. 安裝node 9.11.1 并切換環(huán)境
    nvm install 9.11.1
    nvm use 9.11.1
  3. 創(chuàng)建一個新的工作目錄,并在命令行索引到該路徑
  4. 安裝ganche-cli、web3、solc
    npm install ganache-cli
    npm install web3@0.20.1
    npm install solc@0.4.21       //此處原博客沒有版本,會安裝高于0.4的版本,會導(dǎo)致后續(xù)編譯smart contract編譯失敗

    在安裝了ganache-cli與web3時,由于教程版本問題會出現(xiàn)報錯,但是不影響。

  5. 啟動ganache-cli
    node_modules\.bin\ganache-cli

    區(qū)塊鏈 Hello World -- 基于以太坊的投票Dap

  6. 使用Solidity創(chuàng)建Smart Contract,命名為:Voting.sol
    
    pragma solidity ^0.4.18;

contract Voting {

mapping (bytes32 => uint8) public votesReceived;
bytes32[] public candidateList;

function Voting(bytes32[] candidateNames) public {
candidateList = candidateNames;
}

function totalVotesFor(bytes32 candidate) view public returns (uint8) {
require(validCandidate(candidate));
return votesReceived[candidate];
}

function voteForCandidate(bytes32 candidate) public {
require(validCandidate(candidate));
votesReceived[candidate] += 1;
}

function validCandidate(bytes32 candidate) view public returns (bool) {
for(uint i = 0; i < candidateList.length; i++) {
if (candidateList[i] == candidate) {
return true;
}
}
return false;
}}

7. 啟動node交互控制臺,依次輸入以下命令

Web3 = require('web3')
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"))
web3.eth.accounts


 輸入以上最后一條命令后會獲取Ganache創(chuàng)建的10個帳號,如下

區(qū)塊鏈 Hello World -- 基于以太坊的投票Dap

> code = fs.readFileSync('Voting.sol').toString()
> solc = require('solc')
> compiledCode = solc.compile(code)

全部完成會得到如下截圖的輸出,表示smart contract編譯成功
區(qū)塊鏈 Hello World -- 基于以太坊的投票Dap
8.部署smart contract

> abi = JSON.parse(compiledCode.contracts[':Voting'].interface)
> VotingContract = web3.eth.contract(abi)
> byteCode = compiledCode.contracts[':Voting'].bytecode
> deployedContract = VotingContract.new(['James', 'Norah', 'Jones'],{data: byteCode, from: web3.eth.accounts[0], gas: 4700000})
> deployedContract.address

此時會獲取address,記下來后續(xù)會用到

contractInstance = VotingContract.at(deployedContract.address)
  1. 下載web3.js文件,下載后放在工作根目錄下。
    由cdn不知什么原因不可用,所以直接下載源文件,鏈接如下
    web3.js 0.20.6
  2. 在根目錄下創(chuàng)建index.html文件,并粘貼以下代碼,需要在截圖標(biāo)出處,更換成第8步自己部署的smart contract的address
    
    <!DOCTYPE html>
    <html>
    <head>
    <title>DApp</title>
    <link href='https://fonts.googleapis.com/css?family=Open Sans:400,700' rel='stylesheet' type='text/css'>
    <link  rel='stylesheet' type='text/css'>
    </head>
    <body class="container">
    <h2>Voting Application</h2>
    <div class="table-responsive">
    <table class="table table-bordered">
    <thead>
    <tr>
    <th>Candidate</th>
    <th>Votes</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>James</td>
    <td id="candidate-1"></td>
    </tr>
    <tr>
    <td>Norah</td>
    <td id="candidate-2"></td>
    </tr>
    <tr>
    <td>Jones</td>
    <td id="candidate-3"></td>
    </tr>
    </tbody>
    </table>
    </div>
    <input type="text" id="candidate" />
    <a href="#" onclick="voteForCandidate()" class="btn btn-primary">Vote</a>
    </body>



![更換address](/upload/otherpic34/64078738-f976e400-cd10-11e9-82ef-20468a8e6ba5.png)

11. 在瀏覽器打開index.html,輸入Candidate中的人名后,點(diǎn)擊Vote即可投票,投票后效果如下
![](/upload/otherpic34/64078737-f8de4d80-cd10-11e9-874c-d3e8570432fb.png)

## 后記
以上步驟就完成了一個基于Ethereum的投票Dapp的完整搭建流程,整合個補(bǔ)全后步驟應(yīng)該不會有坑的可以順利搭建完成。

就像“hello world”的字面意思一樣,0-1的過程是最艱難的,但是開了頭,剩下的1-n也就會順暢不少。

####
***要獲取更多Haytham原創(chuàng)文章,請關(guān)注公眾號"許聚龍":***
![我的微信公眾號](/upload/otherpic34/63688227-5b2ede00-c839-11e9-9aa9-2b461444f463.png)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前名稱:區(qū)塊鏈HelloWorld--基于以太坊的投票Dap-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://weahome.cn/article/jooph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部