主页 > 苹果版imtoken > 从零开始的以太坊区块链开发指南 II
从零开始的以太坊区块链开发指南 II
苹果版imtoken 2023-03-11 05:47:13
前言
上一篇我们介绍了Geth的安装,今天介绍一下如何部署智能合约。 如果你还没有看过前面介绍的内容以太坊区块链技术,建议你看一下之前的文章《以太坊区块链开发指南从零开始1》。部署智能合约首先需要一个用solidity编写的合约文件和开发以太坊的框架Truffle
安装Solc
solc 是用于编译智能合约文件的编译器。
npm install -g solc
安装完成后,查看是否安装成功。
$solcjs --version
0.4.19+commit.c4cbbb05.Emscripten.clang
输出版本号表示安装成功。
安装松露
npm install -g truffle
安装 Truffle 后,我们运行命令。
truffle version
输出
Truffle v4.0.3 (core: 4.0.3)
Solidity v0.4.18 (solc-js)
这意味着我们的 Truffle 安装成功。
创建一个 solidity 项目
truffle init
创建一个 solidity 项目
该命令会自动创建一个项目和相关文件。 并为我们创建了一个内置的合约文件Migrations.sol
truffle 创建的项目目录
pragma solidity ^0.4.2;
contract Voting{
//voter struct
struct Voter{
bytes32 name;
bool voted;//is voted or not
uint vote;//vote who
uint givenRightTime;//aurth time
uint votetime;//vote time
}
struct Proposal{
bytes32 name;
uint voteCount;
}
address public chairperson;//vote initiator
mapping(address=>Voter)public voters;//voters
Proposal[] public proposals;//can vote to who
//constructor
function Voting(bytes32[] proposalNames) public{
chairperson = msg.sender;
//init proposals
for(uint i = 0;i winningVoteCount){
winningVoteCount = proposals[p].voteCount;
winningProposalIndex = p ;
}
}
}
function winnerName()public constant returns(bytes32 winnerName){
winnerName = proposals[winningProposalIndex()].name;
}
}
module.exports = {
// See
// to customize your Truffle configuration!
networks: {
development: {
host: "localhost",
port: 8081,
network_id: "*", // Match any network id
gas: 1000000
}
}
};
host和port是你本地以太坊节点的IP地址和端口以太坊区块链技术,gas是部署需要的coin,然后打开项目文件migrations文件夹下的1_initial_migration.js,把你要部署的文件改成Voting.sol
// var Migrations = artifacts.require("./Migrations.sol");
var Voting = artifacts.require("./Voting.sol");
module.exports = function(deployer) {
deployer.deploy(Voting,['hexo','tfboys']);
};
truffle compile
编译成功
运行松露迁移
truffle migrate
部署
在相应的以太坊节点上可以看到相应的输出
以太坊节点输出
这证明我们的合约已经部署到我们的私有链上了。
运行命令
txpool.status
打包好的合约可以部署了
我们跑
miner.start()
之后松露会出现
部署成功
从表面上看,我们的合约部署是成功的。
好了,我们已经成功部署了一个合约,下一章我们会讲解如何调用这个合约。