Solidity 是用于开发以太坊智能合约的最受欢迎的语言之一,因此,作为一个想要成为区块链开发人员的人,必须学会如何使用 Solidity 开发智能合约。
一、开发环境
我们将使用的 IDE 是 Remix,在浏览器输入 Remix URL。完成后,你应该会看到一个类似以下的界面:

点击标红的solidity即可开始我们的solidity之旅啦;
详细的solidity中文文档地址:https://learnblockchain.cn/docs/solidity/
基础就慢慢参考文档看吧。
二、写一个简单的Demo(一个借助智能合约众筹的项目)
合约代码如下(比较粗糙,有很多可以优化的地方,比如重复发起,只是demo):
pragma solidity ^0.4.0;
contract zhongchou{
//捐赠人
struct funder{
address fundAddress;
uint toMoney; //个人捐赠金额
}
//发起捐赠的人
struct needer{
address neederAddress;
uint goal; //目标金额
uint amount; //已经完成金额
uint funderCount; //捐赠人数
mapping(uint => funder) fundMap; //捐赠人数映射
}
//全局变量
uint neederCount; //捐赠请求总数,可以作为捐赠计划的主键
mapping(uint => needer) needMap; //捐赠计划mapping
address owner; //合约部署者
constructor() public{
owner = msg.sender; //在构造函数中给合约部署者赋值
}
//发起捐赠请求
//_goal:目标金额
function newNeeder(uint _goal) public{
neederCount ++;
needMap[neederCount] = needer(msg.sender, _goal, 0, 0);
}
//用户捐赠
//_neederCount:捐赠计划主键
function contribute(uint _neederCount) public payable{
needer storage _needer = needMap[_neederCount];
_needer.amount += msg.value;
_needer.funderCount ++;
_needer.fundMap[_needer.funderCount] = funder(msg.sender, msg.value);
}
//检查是否达成目标,如果达成,就把资金转给合约发起者
//_neederCount:捐赠计划主键
function isComplete(uint _neederCount) public{
needer storage _needer = needMap[_neederCount];
if(_needer.amount > _needer.goal){
require(msg.sender == owner); //可以使用modifier前置校验
_needer.neederAddress.transfer(_needer.amount);
}
}
}
三、部署测试:

自己测吧!^_^



