开发人员快速入门

多链存储(以下称为“Multichain.Storage”)是一套以太坊扩展解决方案,可实现高吞吐量、低成本的智能合约,同时保持可信赖的安全性。

以下文档描述了如何使用 Multichain.Storage,它目前在 Polygon Mumbai 测试网上运行。 无论您是只想开始构建的开发人员,还是想深入了解 MCS 的内部结构及其工作原理,此站点都是适合您的地方。

系统设计

MCS 是如何运行的?

如果您想了解 MCS 的运行原理,最好从 用户指南部分开始,它提供了 MCS 内部结构的概述。 从那里,您可以跳转到有关系统各个组件的更详细的解释。

模块

代币交换: 代币交换模块负责将用户的代币换成包裹的代币,可以是USDC或其他代币。

1、用户在上传文件时支付 USDC 或其他代币,这些代币称为用户代币。

2、Multichain.Storage 在将数据存储到 Filecoin 网络时使用 FIL(称为包装代币)进行支付。

3、用户代币应通过此模块更改为包装代币,此步骤称为代币交换。

4、代币交换是通过 DEX 的 Sushi Swap 完成的。

支付模块:

1、上传文件后,根据 :

  • 矿工平均价格

  • 文件大小

  • 持续时间

然后估计的金额将被锁定到付款合同地址,请参阅配置

2、在解锁步骤中,通过Swan平台FIL钱包向Filecoin网络支付的金额,将转入MCS支付接收地址,详见配置

3、在退款步骤中,锁定的超额支付部分将返回到用户钱包。

**Swan Client API:**可以找到更多信息 这里

**DAO 签名:**如果 DAO 检测到上传的文件已被链接,则会触发签名操作。

**Data DAO:**更多信息可以在 Flink

**IPFS:**可以找到更多信息 这里

**Filecoin存储:**可以找到更多信息 这里

如何开始构建

先决条件

  • 操作系统: Ubuntu 20.04 LTS

  • Mysql5.5+

  • Lotus 节点

  • IPFS Client

Lotus 节点

  • Lotus 节点用于制作Car文件和发送离线交易。

  • 在与 MCS 相同的机器上安装 Lotus 节点或 Lotus lite 节点。

  • Lotus全节点相对于Lotus轻节点来说太重了,所以首选Lotus轻节点。

  • Lotus lite 节点依赖于一个 Lotus 节点,所以在使用 Lotus lite 节点时要确保某个地方有一个 Lotus 节点。

Option1️⃣ 安装Lotus全节点

**选项2️⃣ **安装Lotus轻节点

安装

**选项1️⃣ 预构建包:**请参阅release assets资产

wget https://github.com/filswan/multi-chain-payment/releases/tag/v1.0.1/install.sh
./install.sh

选项2️⃣ 源代码

🔔go 1.16+ 为必填项

git clone https://github.com/filswan/multi-chain-payment.git
cd multi-chain-payment
git checkout <release_branch>
./build_from_source.sh

安装后

  • 在执行之前,您应该在 ~/.swan/mcp/config.toml 中检查您的配置,以确保它是正确的。

vi ~/.swan/mcp/config.toml
  • 在执行之前,您应该在 ~/.swan/mcp/.env 中检查您的环境变量,以确保它是正确的。

vi ~/.swan/mcp/.env
  • 在相关文件中设置配置和 env 变量后,您可以在 ./build 目录中运行多链支付

./build/multi-chain-payment

注意

  • 日志位于目录 ./logs 中

  • 您可以在./multi-chain-payment之前添加 nohup,以忽略 HUP(挂断)信号,从而避免在注销时停止。

  • 你可以加 >> mcp.log在命令中让所有日志输出到 mcp.log.

  • 你可以加 &在命令末尾让程序在后台运行。

  • 如:

nohup ./multi-chain-payment-0.2.1-rc1-unix >> mcp.log &   #After installation from Option 1
nohup ./build/multi-chain-payment >> ./build/mcp.log &    #After installation from Option 2

配置

您需要修改配置文件并输入您的配置参数,下面将介绍配置项:

**config.toml **

  • port:Web API 端口。

  • release :在发布模式下工作时:将此设置为 true,否则设置为 false 和环境。 变量 GIN_MODE 不释放。

  • swan_platform_fil_wallet :用于在 Filecoin 网络上支付的钱包地址。

  • filink_url :可以从这里搜索交易数据。

**Lotus **

  • client_api_url :lotus 客户端 web api 的 URL,如: http://[ip]:[port]/rpc/v0,一般来说 [port]1234. 请参阅 Lotus API

  • client_access_token :lotus 客户端 web api 的访问令牌。 它应该具有管理员访问权限。 您可以使用命令从您的 Lotus 节点机器获取它 lotus auth create-token --perm admin. 请参阅 Obtaining Tokens

ipfs_server

  • download_url_prefix :IPFS 服务器 url 前缀,如: http://[ip]:[port]. 存储Car文件以供存储提供商下载。 Car文件网址将是 [download_url_prefix]/ipfs/[file_hash]

  • upload_url_prefix :上传文件的IPFS服务器url,如 http://[ip]:[port]

swan_task

  • dir_deal :用于保存生成的 Car 文件和 CSV 的输出目录。

  • verify_deal : [true/false] 此任务中的交易是否为真实数据。

  • fast_retrieval : [true/false] 表示数据应该可用于快速检索。

  • start_epoch_hours : start_epoch 从当前时间开始以小时为单位的交易。

  • expired_days :存储提供商密封数据的预期完成天数。

  • max_price :愿意为每个 GiB/epoch 支付离线交易的最高价格。

  • generate_md5 : [true/false] 是否为每个Car文件生成MD5,注意:这是一个消耗资源的动作。

Polygon

  • rpc_url :您的Polygon网络 RPC URL。

  • payment_contract_address :Polygon上的Swan支付网关地址以锁定资金。

  • sushi_dex_address : Polygon上的寿司地址。

  • usdc_wFil_pool_contract :从Polygon上的寿司获取 USDC 和 wFil 之间汇率的地址。

  • dao_contract_address :Polygon上的Swan DAO 地址,用于接收 DAO 签名。

  • mcp_payment_receiver_address :MCS 钱包地址,用于从解锁操作中接收资金。

  • gas_limit :交易的Gas限制。

  • unlock_interval_minute : 2 次解锁操作之间的解锁间隔(分钟),不能小于 1。

**.env **

  • privateKeyOnPolygon :钱包的私钥,用于在Polygon网络上执行合约方法并支付 gas。

Last updated