1703879102
1703879103
1703879104
1703879105
为了避免不必要的编译工作,truffle只编译上次编译之后有变化的合约。如果想重写这个行为,用—all选项运行前面的命令。
1703879106
1703879107
用户会在build/contracts目录中发现artifacts。可以根据需要任意编辑这些文件。在运行compile和migrate命令时,这些文件就被修改了。
1703879108
1703879109
在编译前,需要注意如下事项:
1703879110
1703879111
·truffle期望合约文件定义与其文件名完全匹配的合约。例如,如果有一个文件叫作MyContract.sol,那么合约文件须有合约MyContract{}或者library myContract{}。
1703879112
1703879113
·文件名匹配区分大小写,即大小写要一致。这意味着如果文件名没有大写,那么合约名也不应该大写。
1703879114
1703879115
·可以使用Solidity的导入命令声明合约相关内容。truffle将用正确的顺序编译合约,并在必要时自动接入库。必须指明相关内容与当前Solidity文件之间的关系,开头是“./”或者“../”。
1703879116
1703879117
1703879118
truffle 3.1.2版本使用编译器版本0.4.8。ruffle目前不支持更换编译器版本,所以是固定的。
1703879119
1703879120
1703879121
1703879122
1703879124
区块链项目开发指南 8.4.4 配置文件
1703879125
1703879126
truffle.js是用于配置项目的JavaScript文件。该文件可以执行为项目创建配置所需的任何代码。它必须导出一个代表项目配置的对象。文件默认内容如下:
1703879127
1703879128
1703879129
1703879130
1703879131
该对象可以包含多种属性,但最基础的属性是networks。该属性指明哪个网络对部署可用,以及与每个网络交互时的特定交易参数(例如gasPrice、from、gas等)。默认gasPrice是100000000000,gas是4712388,from是以太坊客户端中的第一个可用合约。
1703879132
1703879133
可以随意指定网络数量。继续修改配置文件:
1703879134
1703879135
1703879136
1703879137
1703879138
上述代码定义了development和live两个网络。
1703879139
1703879140
1703879141
在Windows上使用Prompt命令时,默认配置文件名可能导致与可执行truffle的冲突。如果遇到这种情况,推荐使用Windows PowerShell或者Git BASH,因为这些shells没有这种冲突。或者可以将配置文件重命名为truffle-config.js,以避免冲突。
1703879142
1703879143
1703879144
1703879145
1703879147
区块链项目开发指南 8.4.5 部署合约
1703879148
1703879149
即使是最小的项目,也将与至少两个区块链交互:一个在开发人员的机器上,例如ethereumjs testrpc;另一个代表应用最终被部署到的网络,例如以太坊主网络或者私有联盟网络)。
1703879150
1703879151
因为合约抽象运行时自动检测网络,这意味着只需要部署应用或者前端一次。当应用运行时,正在运行的以太坊客户端将决定使用哪些artifacts,这将使应用非常灵活。
[
上一页 ]
[ :1.703879102e+09 ]
[
下一页 ]