@tfc-chain/core
v2.0.7
Published
[![npm version](https://badge.fury.io/js/%40tfc-chain%2Fcore.svg)](https://badge.fury.io/js/%40tfc-chain%2Fcore)
Downloads
6
Readme
@tfc-chain/core
TFC-Chain的以太坊智能合约实现。
配置文件
复制env.example.yml为env.yml,这是本项目的环境变量配置文件,配置TFC-Chain(以太坊)接入点和部署合约所使用的TFC-Chain(以太坊)账户私钥。关于TFC-Chain(以太坊)接入点和账户参考这里。
env.yml:
endpoint: ETHEREUM_ENDPOINT
turboFilContract: DEPLOYED_CONTRACT_ADDRESS
accountPrivateKey:
- PRIVATE_KEY
合约部署
我们使用 hardhat 作为智能合约开发框架。部署合约的hardhat脚本可以在 tasks.tx 中找到,使用方法如下:
yarn workspace @tfc-chain/core hardhat --network development deploy --sector-reward 100000000000000000 --seed-reward 100000000000000000 --verify-reward 100000000000000000 --lock-period 90 --submit-proof-timeout 6 --verify-proof-timeout 12 --verify-threshold 3
以上脚本包含了智能合约的一些初始配置:
- 0.1 TFC 作为sector验证通过的奖励
- 0.1 TFC 作为seed被用作验证之后的奖励
- 0.1 TFC 作为验证proof的奖励
- sector奖励锁定90个周期(例如,第一次的奖励在第九十次奖励发出时解锁)
- sector拥有者必须在sector被选中进行验证的事件发生后6个区块的时间内上传proof
- sector验证者必须在proof上传之后12个区块内提交验证结果
- 至少3个验证者认为验证通过/失败后,sector被认为仍然有效(发放奖励)或已经失效(扣除押金)
- 保存部署的合约地址:
部署完成后会在控制台打印TurboFil智能合约的地址。
将这个地址复制后更新到env.yml
文件和deployment.json
文件中。
@tfc-chain/core会作为一个独立的node.js包发布,提供调用合约的底层API,deployment.json文件中的合约地址会随着这个包一起发布。
测试
智能合约的单元测试使用hardhat+jest编写,源码在test文件夹中。
yarn workspace @tfc-chain/core test
合约设计
- 架构和逻辑:ARCHITECTURE.md
- 智能合约实现和命令行接口:DESIGN.md