Decentralized Ecosystem Cooperation
本文档面向付费任务系统的产品、开发、测试,及其他相关人员。对此文档有任何问题,都可以新建Issue向我们提问,也可以联系Chole(微信 grey0805)加群讨论。
付费任务系统是 DEC 旗下生态系统中重要的垂直行业细分领域产品,专门针对软件开发相关人员,包括但不限于开发、产品、运营及外包等。
付费任务系统是一个基于区块链的分布式系统,运行于多种兼容的云计算平台上,并且可以平行扩展。
使用该软件系统,可以实现发布开发任务、结算佣金、争议解决等协作任务。
付费任务系统由智能合约,任务管理平台、任务展示平台、任务鉴定平台、任务鉴定平台构成。
各组件及交互可见下图。
用户发起任务时,使用任务展示平台客户端(PC网页、iOS/安卓客户端)上传相应的说明和必要的文件,任务管理平台验证后,调用智能合约抵押发布人的对应资产,并在成功后通知发布人。
任务发布后,允许任何人浏览访问,感兴趣的用户可能会尝试提交解决方案并期望获得对应报酬。解决者使用任务管理平台上传解决方案说明和必要的文件,任务管理平台验证完整性,获得通过后会得到通知。
注意: 此时并未发生资产转移。
如果任务发布人对解决方案较为满意,会直接“确认”解决方案,此时任务管理平台会尝试调用智能合约转账对应报酬到解决方案提供方帐户。同样的,成功后双方会获得通知。
如果发布者不满意解决方案,或者希望获得专业意见,可以通过请求鉴定的方式,获得任务鉴定平台的专业意见,并按裁定的任务完成比例支付报酬。
以下分模块介绍详细设计方案及相关指标。
智能合约完成的是核心交易逻辑,包括提交任务时抵押 DET,完成任务时支付 DET 等。
目前基于以太坊,执行速度取决于Gas Price设置,不建议使用超高Gas加速,推荐将所有交易和回调异步化。
预先定义的合约函数,一般由任务管理平台发起调用。当然也可以由其他任何第三方发起调用。
除合约状态改变外,还会输出 Event Log 。部分场合可能还会通过 Oraclize 调用其他平台,如任务管理平台和任务鉴定平台等。
无特殊算法。
以太坊智能合约代码风格采用 Solidity 官方推荐风格。
合约代码样例如下。
// OpenTask.sol
pragma solidity ^0.4.25;
import "github.com/dececo/dechainio/contracts/DET.sol";
contract OpenTask {
DET det;
address owner;
constructor(address initialDETAddress, address initialOwner) public {
det = DET(initialDETAddress);
owner = initialOwner;
}
function updateDETAddress(address newDETAddress) public onlyOwner {
}
function updateOwner(address newOwner) public onlyOwner {
}
function publish(string missionID, uint amountInWei) public {
}
function solve(string solutionID) public {
}
function confirmSolution(string solutionID) public {
}
function confirmArbitration(string solutionID, string arbitration) public {
}
}
见示例代码。
EVM 内部存储分配取决于具体实现,不使用任何以太坊外部存储。
任何人都可能对合约发起调用,但只有符合条件的才能执行成功。例如,只有完成了任务的人才能取走属于自己的那部分佣金。
OpenTask,不会改变现金流走向;
更多要点详见功能。任务管理平台托管用户上传的任务说明和后续的解决方案交付物。是智能合约最主要的驱动方。数据存储在 AWS RDS 数据库中,兼容 MySQL。
MissionID;SolutionID;服务将部署在 AWS 上(最好是使用 Docker),并使用 RDS 作为存储。
用户上传或点击。
无特殊算法。
待补充细化。
依赖项要尽量精简,推荐使用 Docker 方式部署,能打包成 Docker 镜像最好。
见功能。
任务展示平台展示现有任务列表,以及一些较为简单的互动,如点赞、关注等,包括但不限于客户端、网页等。
以下功能仅以网页端为例。
服务将部署在 AWS 上(最好是使用 Docker)。
无
详见功能。
无特殊算法。
待补充。
无外部调用方。
无。
依赖项要尽量精简,推荐使用 Docker 方式部署,能打包成 Docker 镜像最好。
详见功能。
任务鉴定平台对任务完成与否进行鉴定。一般不需要,只有交易双方出现分歧时才引入。
服务将部署在 AWS 上(最好是使用 Docker),并使用 RDS 作为存储。
待补充投票规则。
标准 JSON-RPC 接口,支持 HTTPS 协议,该接口主要供智能合约通过 Oraclize 调用。URL 路径中推荐含有网络和版本,方便针对不同合约版本进行加密,如https://www.identify.com/rinkeby/v1/verify。
请求参数如下:
solution_id: 要查询解决方案ID返回参数如下:
solution_id: 要查询解决方案IDcompleted: 是否完成,完成: true, 未完成: falsepercentage: 完成百分比,0-100的整数,比如30表示该任务完成了30%`注意: 在合约调用中该URL地址加密。
以下是调用示例:
// Request
curl -s -H 'Content-Type: application/json' -X POST --data '{"jsonrpc":"2.0","method":"dec_verify","params":[{"solution_id":"4d2be90d-24da-4857-8590-a9d3233c888d"}],"id":67}' 'https://www.identify.com/rinkeby/v1/verify'
// Result
{
"id":67,
"jsonrpc": "2.0",
"completed": true,
"percentage": 100
}
无。
见功能。
任务撮合系统对任务进行撮合并推送到相关用户。因前期采用广播模式,该模块不需要实现。
对已发布的任务进行撮合,找出匹配的潜在解决者,进行消息推送,吸引该用户的注意。
暂无。
自定义撮合算法是撮合系统的核心,每个实现均可以不同。
待补充
待补充
多个撮合引擎均推送给用户同一任务时,以用户阅读的最早的推送为准。后续即使用户多次阅读类似推送消息,也不会再支付任何佣金。
见功能。