以太坊开发之一切从脚手架truffle开始
这个礼拜开始学习区块链开发,为了公司区块链项目开始之前有一定的知识储备. 在博客做一下知识复盘.
truffle是什么
Truffle是针对基于以太坊的Solidity语言的一套开发框架。本身是基于Javascript实现的。 虽然是使用我们熟悉的Javascript实现, 但是truffle主要还只是一个编译与发布智能合约
的一个工具(当然还有其他的功能).
Solidity是什么
在区块链应用的开发中,Solidity语言你或许大致的可以理解为编写后台的一种语言. 在专业术语里,这种后台代码叫做 智能合约
truffle的主要作用
Truffle在区块链应用的开发中,主要是提供两个重要的功能. 1. 编译智能合约 2. 发布智能合约
安装
跟普通的npm包一样,用npm直接安装
# 全局安装truffle
$ npm i truffle -g
初始化你的项目
# 我们新建一个目录
$ mkdir myproject
$ cd myproject
#初始化
$ truffle init
# 执行命令后
Downloading...
Unpacking...
Setting up...
Unbox successful. Sweet!
Commands:
# truffle的其他操作 编译,发布,测试
Compile: truffle compile
Migrate: truffle migrate
Test contracts: truffle test
完成之后你会看到以下目录
contract/ - 智能合约Solidity代码
migrations/ - 智能合约发布的脚本
test/ - 测试文件
truffle.js - Truffle的配置文件
下面是初始化自动生成的Solidity代码,以后一部分开发工作主要就是写这东西. 编译完成之后,再使用前端js调用这些方法.
pragma solidity ^0.4.17;
contract Migrations {
address public owner;
uint public last_completed_migration;
modifier restricted() {
if (msg.sender == owner) _;
}
function Migrations() public {
owner = msg.sender;
}
function setCompleted(uint completed) public restricted {
last_completed_migration = completed;
}
function upgrade(address new_address) public restricted {
Migrations upgraded = Migrations(new_address);
upgraded.setCompleted(last_completed_migration);
}
}
编译 Solidity
$ truffle compile
执行命令后会多出一个 build文件夹 里面就是我们编译完成的Solidity代码,最终会是json形式.
build/
contracts/
Migrations.json
这个json文件就是我们以后经常能用到的智能合约
了 在区块链的前端开发中,会在前端代码里引入这个json文件,并且调用里面的方法.
微信公众号
