English version

简介

Permaswap Network 采用了 AMM 技术,是一个完全去中心化的分布式 P2P 交易网络

https://mirror.xyz/permaswap.eth/kdg0iXx1jB-vXYEc_WEAeTNX_sGjv8BXksHxcFdoKjo

用户可以通过运行 Permaswap 的 LP 客户端,为 Permaswap 提供资金流动性。

类似于为 Uniswap 提供流动性,提供流动性需要占用流动性提供者(即 LP )一定资金量。LP可以设置做市的价格范围和提供的资金量。LP 在获得手续费作为收入的同时,也有可能产生一定无常损失。

和 Uniswap 提供流动性不同的是:

  1. Permaswap 的 LP 的资金仍旧存放在用户自身的钱包中,无需存入智能合约;
  2. Permaswap 的 LP 需要运行 LP 客户端程序,一直在线,验证/签署 Router 发送的订单,完成交易

目前可用的 Permaswap 的 LP 客户端有:

  1. Javascript 语言编写图形化界面客户端;
  2. Golang 语言编写命令行客户端

本文是 Golang LP 客户端做市的教程,流动性提供者可以按照该教程部署 LP 节点,在 Permaswap 网络中进行 AMM 自动做市。

其他资料:

everpay 的介绍:

https://everpay.zendesk.com/hc/zh-cn/articles/4404204530201-everPay-产品介绍

everpay 上的资产:

https://everpay.zendesk.com/hc/zh-cn/articles/4405069888537-什么是-everPay-余额-

测试网用户也可以从 everpay 的水龙头领取测试代币,测试产品

https://faucet-dev.everpay.io/

准备

  1. everpay 目前支持以太坊和 arweave 账号系统。

    用户可以用 metamask 钱包 或者 arconnet 钱包生成账号,并在 everPay 持有做市资产。

    1. 测试环境:需要持有 tUSDC 和 tAR。可以通过测试环境 水龙头 faucet 获得 tUSDC。

      提供流动性需要有至少两种资产。比如想为 tUSDC-tAR 的交易对池子提供流动性,用户需要同时持有 tUSDC 和 tAR 两种资产。

      用户在水龙头获得 tUSDC 后,可以去 swap 兑换获得 tAR 或者 tADRIVE,从而为相应的交易对池子做市。

    2. 生产环境:用户需要将资产充值到 everPay。

      教程: https://everpay.zendesk.com/hc/zh-cn/articles/4404197313433-充值

  2. 使用 Golang 版本 CLI 客户端推荐以下配置:

    1. 512MB 内存 / 1 CPU 及以上配置的云主机;
    2. Ubuntu 系统 20.04 及以上

测试环境说明

环境标志:testnet

ChainID:5

URL:

  1. 网站: https://app.permaswap.network/#/
  2. http-api https://router0-dev.permaswap.network
  3. ws-api:wss://router0-dev.permaswap.network/wslp

支持的 Token 信息:

token token tag decimals 说明
tAR bsc-tar-0xf1458ee7e9a2096bce7a21c160840a3a291bcb55 12
tARDRIVE bsc-tardrive-0xf4233b165f1b8da4f9aa94abc35c9ad2a7612979 18
tUSDC bsc-tusdc-0xf17a50ecc5fe5f476de2da5481cdd0f0ffef7712 6

支持的交易对池子 Pool 信息:

Pool Pool ID token-x token-y 费率
tAR-tUSDC 0xb57de84c67306cc740021ba9ec328d9b2e351b2196caf96d8a6117a6e6bc680a tAR tUSDC 0.3 %
tAR-tARDRIVE 0x196ca0c5e44d776e1d7ee1e6485030ea43ee4bad225e3312685048827eaf2a92 tAR tARDRIVE 0.3 %

生产环境说明

环境标志:mainnet

ChainID:1

URL:

  1. 网站: https://app.permaswap.network/
  2. http-api: https://router.permaswap.network
  3. ws-api:wss://router.permaswap.network/wslp

支持的 Token 信息:

token token tag decimals 说明
AR arweave,ethereum-ar-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,0x4fadc7a98f2dc96510e42dd1a74141eeae0c1543 12 公链 arweave 原生代币
ETH ethereum-eth-0x0000000000000000000000000000000000000000 18 公链以太坊 ethereum 原生代币
USDC ethereum-usdc-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 6 以太坊上发行的 USDC erc20 代币
USDT ethereum-usdt-0xdac17f958d2ee523a2206206994597c13d831ec7 6 以太坊上发行的 USDT erc20 代币

支持的交易对池子 Pool 信息:

Pool Pool ID token-x token-y 费率
AR-USDC 0x0750e26dbffb85e66891b71b9e1049c4be6d94dab938bbb06573ca6178615981 AR USDC 0.3 %
AR-ETH 0x5f0ac5160cd3c105f9db2fb3e981907588d810040eb30d77364affd6f4435933 AR ETH 0.3 %
ETH-USDC 0x7eb07d77601f28549ff623ad42a24b4ac3f0e73af0df3d76446fb299ec375dd5 ETH USDC 0.3 %
USDC-USDT 0xdb7b3480f2d1f7bbe91ee3610664756b91bbe0744bc319db2f0b89efdf552064 USDC USDT 0.05 %

下载

从官网下载 linux Lp 客户端 Permaswap.linux.tar.gz。

测试环境:https://app-dev.permaswap.network/#/pool

生产环境:https://app.permaswap.network/#/pool

下载解压缩后,有 lp、lpconifg、run.sh 三个文件:

  1. lpconfig 用于生成做市的配置文件;
  2. lp 根据配置文件运行,一直在线,验证/签署router发送的订单,完成交易;
  3. run.sh 是启动lp客户端脚本。

配置文件

生成lp做市的配置文件,分为2个步骤:

  1. lpconfig --info 获取目前可以做市的Pool信息;

    --network 设置连接的网络,可以为 testnet 或者 mainnet

lpconfig --info --network testnet
  1. 生成配置文件,计算并显示需要的资金
lpconfig --network testnet -p poolid -low 做市的最低价格 -current 当前价格 -high 最高价格 -x tokenx的数量 -c 配置文件的路径

其中

-p poolid 为池子的id,从第一步获取;

--network 设置连接的网络,可以为 testnet 或者 mainnet;

-low 做市的最低价格 ;

-current 当前价格;

-high 做市的最高价格;

-x -y 做市的资金计算过程中,tokenX 或者tokenY的数量只需填写一个,另一个需要的数量会自动计算得出;

-c 配置文件的路径;

示例:

lpconfig --network testnet -p 0xb57de84c67306cc740021ba9ec328d9b2e351b2196caf96d8a6117a6e6bc680a -low 1 -current 10 -high 20 -x 100 -c lp_config.json

以上命令会生成一个在池子0xb57de84c67306cc740021ba9ec328d9b2e351b2196caf96d8a6117a6e6bc680a( tAR-tUSDC )做市的lp配置文件 。

价格范围在 1 tUSDC / tAR - 20 tUSDC / tAR,当前价格为 10 tUSDC / tAR,做市资金的 tokenX (即 tAR )的数量是 100。 生成的配置文件为当前目录下的 lp_config.json。

全范围 Full Range 做市

如果是价格范围是 full_range, 加入选项 -f,选项 -low 和 -high 不用提供。

示例:

lpconfig --network testnet -p 0xb57de84c67306cc740021ba9ec328d9b2e351b2196caf96d8a6117a6e6bc680a -current 10 -y 1000 -c lp_config.json

生成一个在池子0xb57de84c67306cc740021ba9ec328d9b2e351b2196caf96d8a6117a6e6bc680a(tAR-tUSDC)做市的lp配置文件,价格范围是 full-range,当前价格为 10 tUSDC / tAR,做市资金 tokenY( 即 tUSDC )的数量是 1000。 生成的配置文件为 lp_config.json。

多 lp

已有一个 lp 配置,添加第二个 lp 配置信息,只需在 -c 选项指定为已有配置的lp配置文件。

示例:

lpconfig --network testnet -p 0xb57de84c67306cc740021ba9ec328d9b2e351b2196caf96d8a6117a6e6bc680a -current 10 -y 1000 -c lp_config.json

此时 lp_config.json 已经包含了第一个lp的配置信息,第二个lp配置信息会添加在文件尾。

运行 lp

  1. 修改运行脚本 run.sh 中的环境变量:
export ETH_CHAIN_ID="5"
export PAY="<https://api-dev.everpay.io>"
export PERMA_WS="wss://router0-dev.permaswap.network/wslp"
export PERMA_HTTP="<https://router0-dev.permaswap.network>"
export LP_CONFIG="./lp_config.json"
export AR_WALLET="ar_wallet.json"
#export ECC_PRIVATE=""
./lp
  1. 运行
screen -S lp  #新开一个screen session
source [run.sh](<http://run.sh/>)