Skip to content

Latest commit

 

History

History
93 lines (86 loc) · 5.24 KB

README-cn.md

File metadata and controls

93 lines (86 loc) · 5.24 KB

GoDoc Go Report Card Build Status codecov

中文
EN
한국어
日本語

介绍

通过区块链提供数据交换的SDK,让开发者可以快速方便的开发DAPP应用。主要包含这些内容:数据加解密、签名、智能合约、事件通知、数据存储接口、数据获取与查询、数字货币支付、第三方App支付接口等。过程如下:
数据提供者通过SDK写入数据及元数据(数据包含静态数据、动态数据,数据有约定的格式,元数据主要包含数据签名、数据描述等信息);数据需求者通过SDK查找需要的数据,支付数字货币后,可以获得数据;数据验证者,通过向智能合约抵押一定的数字货币来成为验证者。在数据交换过程中,数据需求者可以向合约发起有偿数据验证请求或交易仲裁,验证者由智能合约随机选取。数据交换的所有参与者可以在参与的交易中相互评分;智能合约会记录参与者交易及评分信息,生成参与者的信誉评价,信誉评价信息可以通过SDK查询。

Windows

编译

编译环境

请自行安装下列环境(括号内为经过测试的推荐版本):

  • go (1.12.5)
  • node.js (10.15.3)
  • gcc (mingw-w64 v8.1.0)

打包UI资源文件:

我们假设你已经完成了node.js的下载与安装。

执行dp/app/app/ui/tool目录下的webpackUI.ps1脚本文件完成这一步骤。

构建app可执行文件:

在dp/app/app/main目录下执行go build,成功执行后,会生成入口文件:main.exe

运行

依赖

  • ipfs客户端 (0.4.14 / 0.4.20)
  • geth客户端 (1.9.19)
  • 浏览器 (chrome 79)

连接ipfs:

我们假设你已经完成了ipfs的下载与安装。

  • 修改配置文件,在你的ipfs下载路径中,找到config文件。如下所示,为其一级配置项"API"添加下面三条"Access..."配置:
"API": {
  "HTTPHeaders": {
    "Server": [
      "go-ipfs/0.4.14"
    ],
    "Access-Control-Allow-Origin": [
      "*"
    ],
    "Access-Control-Allow-Credentials": [
      "true"
    ],
    "Access-Control-Allow-Methods": [
      "POST"
    ]
  }
},
  • 在命令行执行 ipfs daemon 命令,执行成功时会显示"Daemon is ready",保持命令行窗口开启。

因为app使用js进行ipfs上传,所以上面添加了"允许ipfs跨域执行post请求"的配置。

搭建一条私链:

我们假设你已经完成了geth的下载与安装。

执行dp/backend/contracts/geth_init目录下的geth_init.ps1脚本文件完成私链搭建。
执行相同目录下的geth_acc_mine.ps1脚本文件创建用户并开始挖矿。

部署智能合约:

执行dp/backend/contracts/tool目录下的contract.ps1脚本文件完成这一步骤。
脚本会将部分结果输出到上级目录的migrate.log文件,在文件末尾可以找到ScryTokenScryProtocol两个"0x"开头的42个字符的地址。

修改app配置文件:

按照相应格式,修改位于dp/app/app/main目录下的main.json配置文件:

key value
protocolContractAddr 修改为日志文件中找到的ScryProtocol地址
tokenContractAddr 修改为日志文件中找到的ScryToken地址
uiResourcesDir 修改为你的电脑上的dp项目路径
metaDataOutDir 修改为你期望的原始数据文件下载路径
proofsOutDir 修改为你期望的证明文件和临时文件的下载路径

修改上面的配置即可保证主要流程正常执行,下附其他配置信息简要描述:

key value
appId 同一条链上,不同id的app,消息是不互通的
ethServiceAddr 链地址
keyServiceAddr 用户服务地址
storageServiceAddr ipfs地址
wsPort app前后端之间的websocket连接使用的端口
dbName 数据库名

体验

完成上述所有步骤后,即可通过dp/app/app/main/main.exe入口文件进行体验。

异常处理:

  • windows禁止ps1脚本执行:使用管理员权限,执行Set-ExecutionPolicy unrestricted命令。
  • npm install error,找不到python exec:安装python2或忽略该问题。
  • npm install error:node.js版本冲突,完全卸载node.js后重新安装即可解决该问题。
  • 用户服务启动失败,找不到vcruntime140.dll:安装vcre
  • 智能合约部署失败,连接不到以太坊客户端:检查是否使用了自定义的端口搭建私链,修改contracts目录下的truffle.js配置文件network.geth.port与之一致。