# linked-storage-sync-index **Repository Path**: dxc520/linked-storage-sync-index ## Basic Information - **Project Name**: linked-storage-sync-index - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-30 - **Last Updated**: 2024-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## linked-storage-sync-index ### 环境变量 链 chains 支持配置多链,链的名称无固定,随意(),每条链允许 按照 devNet,testNet,prodNet三个网来划分配置。不配不使用,即使配了,ENABLED=true 才启用 | 名称 | 值 | 默认值 | 描述 | |---------------------------------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------|---------------------------------------------------------------------| | SERVER_PORT | 8188 | 8188 | 服务端口 | | SERVER_DATAPATH | data | data | 本地生成的数据目录 | | SERVER_PPROF | true | true | 默认开启prof,生产可关闭,影响性能 | | SERVER_PPROFPORT | 9123 | 9123 | 默认开启prof,端口号 | | LOGGER_MODE | debug | debug | gin日志级别:debug,release | | LOGGER_LEVEL | debug | debug | 业务日志级别 | | LOGGER_ISOUTPUTFILE | false | false | 日志是否落磁盘 | | LOGGER_MAXAGEDAY | 7 | 7 | 保存天数7 | | LOGGER_ROTATIONTIME | 1 | 1 | 日志按天分割 | | MONGODB_HOSTS | [127.0.0.1] | [127.0.0.1] | 服务地址 | | MONGODB_USERNAME | "" | "" | 用户名 | | MONGODB_PASSWORD | "" | "" | 密码 | | MONGODB_DBNAME | "linked-storage-sync-index" | "linked-storage-sync-index" | db的实例名称 | | MONGODB_MAXPOOLSIZE | 100 | 100 | 最大连接数 | | REDIS_HOSTS | "127.0.0.1:6379" | "127.0.0.1:6379" | 服务地址 | | REDIS_PASSWORD | "" | "" | 密码 | | REDIS_DB | 0 | 0 | db的实例名称 | | REDIS_TTL | 300 | 300 | 过期时间秒 | | REDIS_ENABLED | false | false | 是否启用 | | CHAINS_SOLARCHAIN_TESTNET_CHAINID | 65534 | 65534 | 链ID | | CHAINS_SOLARCHAIN_TESTNET_ENABLED | true | true | 是否启用 | | CHAINS_SOLARCHAIN_TESTNET_INFRAHTTP | http://test-sct-ws.netwarps.com | http://test-sct-ws.netwarps.com | 链http的API入口 | | CHAINS_SOLARCHAIN_TESTNET_INFRAWEBSOCKET | ws://test-sct-ws.netwarps.com | ws://test-sct-ws.netwarps.com | 链websocket的API入口 | | CHAINS_SOLARCHAIN_TESTNET_NFT20ADDR | 0x6C7EA87A7B6Fd706EA2730b69753d2D32028683A | 0xE3D22AdAc0F93A25f3Bbe4C31D64851ee6648b9F | ERC20铸币合约 | | CHAINS_SOLARCHAIN_TESTNET_NFT20SYMBOL | USDK | USDK | | | CHAINS_SOLARCHAIN_TESTNET_NFT20NAME | "Kugga (PoS) Tether USD" | "Kugga (PoS) Tether USD" | | | CHAINS_SOLARCHAIN_TESTNET_NFT20DECIMALS | 6 | 6 | | | CHAINS_SOLARCHAIN_TESTNET_BOUNTYADDR | 0x04063d8978A0Fda255f9410A3De5ea2E16848c17 | 0x04063d8978A0Fda255f9410A3De5ea2E16848c17 | kugga bounty合约 (征稿、PickWinner,提款,提高赏金,增加代币资产 | | CHAINS_SOLARCHAIN_TESTNET_BOUNTYSYMBOL | BP | BP | | | CHAINS_SOLARCHAIN_TESTNET_BOUNTYNAME | "BountyPledge " | BountyPledge | | | CHAINS_SOLARCHAIN_TESTNET_DEPLOYEDFROMBLOCK | 10657097 | 0 | 起始块:部署的起始块,影响同步服务起始块 | | CHAINS_POLYGON_TESTNET_CHAINID | 80001 | 80001 | 链ID | | CHAINS_POLYGON_TESTNET_ENABLED | true | true | 是否启用 | | CHAINS_POLYGON_TESTNET_INFRAHTTP | https://polygon-mumbai.g.alchemy.com/v2/IKklR2Q3T44IATgPXG9GSDnXuGLrG9hL | https://polygon-mumbai.g.alchemy.com/v2/IKklR2Q3T44IATgPXG9GSDnXuGLrG9hL | 链http的API入口 | | CHAINS_POLYGON_TESTNET_INFRAWEBSOCKET | wss://polygon-mumbai.g.alchemy.com/v2/IKklR2Q3T44IATgPXG9GSDnXuGLrG9hL | wss://polygon-mumbai.g.alchemy.com/v2/IKklR2Q3T44IATgPXG9GSDnXuGLrG9hL | 链websocket的API入口 | | CHAINS_POLYGON_TESTNET_NFT20ADDR | 0x19dB3385be992Dd3BA7Fb772FC88e3b127D4F7a8 | 0x19dB3385be992Dd3BA7Fb772FC88e3b127D4F7a8 | ERC20铸币合约 | | CHAINS_POLYGON_TESTNET_NFT20SYMBOL | USDK | USDK | | | CHAINS_POLYGON_TESTNET_NFT20NAME | Kugga (PoS) Tether USD | Kugga (PoS) Tether USD | | | CHAINS_POLYGON_TESTNET_NFT20DECIMALS | 6 | 6 | | | CHAINS_POLYGON_TESTNET_BOUNTYADDR | 0x038D560fAF3aDc3bf6A32116A6CC3Df5BFB05Db1 | 0x038D560fAF3aDc3bf6A32116A6CC3Df5BFB05Db1 | kugga bounty合约 (征稿、PickWinner,提款,提高赏金,增加代币资产) | | CHAINS_POLYGON_TESTNET_BOUNTYSYMBOL | BP | BP | | | CHAINS_POLYGON_TESTNET_BOUNTYNAME | "BountyPledge " | BountyPledge | | | CHAINS_POLYGON_TESTNET_DEPLOYEDFROMBLOCK | 0 | 0 | 起始块:部署的起始块,影响同步服务起始块 | | CHAINS_POLYGON_TESTNET_CONFIRMEDBLOCKCOUNT | 6 | 6 | 同步确认区块数量 | | DAPP_HOST | http://www.kugga-api.com | http://www.kugga-api.com | 回调后台服务,刷新数据状态 | | DAPP_SECRETKEY | linked-storage-sync-index | linked-storage-sync-index | 回调身份 | | SYNC_CRONSPEC | * * * * * * | 0 */1 * * * * | 1、同步定时任务的时间cron spec:秒 分 时 日 月 星期
2、若取消定时任务,则配置:* * * * * * | | SYNC_GROUPPAGESIZE | 500 | 500 | 同步区块,分页的 pageSize | | SYNC_LIMITHANDLERAMOUNT | 1 | 1 | 在同一个批次里面,可以并发处理的并发数,原则上小于pageSize,开启过大,并非好事。默认值 1 | | SYNC_RETRYCRONSPEC | * * * * * * | 0 */3 * * * * | 1、回调重试定时任务的时间cron spec:秒 分 时 日 月 星期
2、若取消定时任务,则配置:* * * * * * | **chains配置规则:** > 允许配置多条chain,名称随意起,主要不重复 > 每条链允许配置三个环境Model:开发(DEVNET),测试(TESTNET),生产(PRODNET) > CHAINS_{chainName}_{chainModel}_{attributeName} ### Mark #### Cron 配置说明 - cron表达式 |顺序| 秒 | 分钟| 小时 | 日期| 月份| 星期| 年(可选)| |-----|-----|-----|-----|-----|-----|-----|-----| | 取值| 0-59| 0-59 | 0-23| 1-30(31)| 1-12 | 1-7| | 允许特殊字符| , - * / | , - * /| , - * /| , - * / ? L W C | , - * / | , - * / L # C | 1970-2099 , - * / | - 字段含义 - **`*`**:代表所有可能的值 - **`-`**:指定范围 - **`,`**:列出枚举 例如在分钟里,"5,15"表示5分钟和20分钟触发 - **`/`**:指定增量 例如在分钟里,"3/15"表示从3分钟开始,没隔15分钟执行一次 - **`?`**:表示没有具体的值,使用?要注意冲突 - **`L`**:表示last,例如星期中表示7或SAT,月份中表示最后一天31或30,6L表示这个月倒数第6天,FRIL表示这个月的最后一个星期五 - **`W`**:只能用在月份中,表示最接近指定天的工作日 - **`#`**:只能用在星期中,表示这个月的第几个周几,例如6#3表示这个月的第3个周五 - 示例: ``` 0 * * * * ? 每1分钟触发一次 0 0 * * * ? 每天每1小时触发一次 0 0 10 * * ? 每天10点触发一次 0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发 0 30 9 1 * ? 每月1号上午9点半 0 15 10 15 * ? 每月15日上午10:15触发 */5 * * * * ? 每隔5秒执行一次 0 */1 * * * ? 每隔1分钟执行一次 0 0 5-15 * * ? 每天5-15点整点触发 0 0/3 * * * ? 每三分钟触发一次 0 0 0 1 * ? 每月1号凌晨执行一次 ``` ## 如果需要检测,并同步其他代币 **有两种方式:** - **1、直接初始化数据库** - **开发与测试环境** ``` use linked-storage-sync-index; db.ethCoinErc20Config.save({"chain_id":80001,"contract_address":"0xe235AF2460FDCfDDfb1892754A801947dF30D0CD","contract_name":"USD Coin 4 Kugga (PoS)","contract_symbol":"USDC4K","decimals":6,"contract_symbol_alias":"USDC4K"}); ``` - **生产环境** ``` use linked-storage-sync-index; db.ethCoinErc20Config.save({"chain_id":137,"contract_address":"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174","contract_name":"USD Coin (PoS)","contract_symbol":"USDC","decimals":6,"contract_symbol_alias":"USDC"}); ``` - 2、通过api 操作 | 配置项 | 配置项| 说明 | |---|----|---| | 访问地址 api | /v1/config/erc20 | | | 访问协议 | http/https | | | 提交method |POST| | | 参数请求body |
```{"chain_id": 0,"contract_address": "string","contract_name": "string", "contract_symbol": "string","contract_symbol_alias": "string","decimals": 0,"id": "string", "wallet_address": "string"}```
| |