在 ION SIDETREE 测试网中生成 DID
Posted
技术标签:
【中文标题】在 ION SIDETREE 测试网中生成 DID【英文标题】:Generate DID in ION SIDETREE testnet 【发布时间】:2021-10-26 19:22:51 【问题描述】:我已经成功部署了 ION SIDETREE 测试网。
我关注了这个install instruction。但是当我创建 DID 时,它返回了主网的 DID。
不知道哪里错了。
这是我的配置:
第 1 步:我使用以下命令运行比特币:
root@ion:~/bitcoin-0.20.1# ./bin/bitcoind -testnet -rpcuser=admin -rpcpassword=admin -fallbackfee=0.0002 -txindex=1 -server
这是输出日志 第 2 步:我配置 ION Sidetree
这是我的配置:
root@ion:~/ion/json# cat testnet-bitcoin-config.json
"bitcoinDataDirectory": "/root/.bitcoin/testnet3",
"bitcoinFeeSpendingCutoffPeriodInBlocks": 1,
"bitcoinFeeSpendingCutoff": 0.001,
"bitcoinPeerUri": "http://localhost:18332",
"bitcoinRpcUsername": "admin",
"bitcoinRpcPassword": "admin",
"bitcoinWalletOrImportString": "cMj4VE3WyJt6RAQVGboDATFQ6YAVKo6fCVXw7oKuSpaAfNJqCuV1",
"databaseName": "ion-testnet-bitcoin",
"genesisBlockNumber": 1900000,
"logRequestError": true,
"mongoDbConnectionString": "mongodb://127.0.0.1:27017/",
"port": 3002,
"sidetreeTransactionFeeMarkupPercentage": 1,
"sidetreeTransactionPrefix": "ion:test",
"transactionPollPeriodInSeconds": 60,
"valueTimeLockUpdateEnabled": false,
"valueTimeLockAmountInBitcoins": 0,
"valueTimeLockPollPeriodInSeconds": 600,
"valueTimeLockTransactionFeesAmountInBitcoins": 0.0001
和
root@ion:~/ion/json# cat testnet-core-config.json
"batchingIntervalInSeconds": 600,
"blockchainServiceUri": "http://127.0.0.1:3002",
"databaseName": "ion-testnet-core",
"didMethodName": "ion:test",
"ipfsHttpApiEndpointUri": "http://127.0.0.1:5001",
"maxConcurrentDownloads": 20,
"mongoDbConnectionString": "mongodb://127.0.0.1:27017/",
"observingIntervalInSeconds": 60,
"port": 3000
第 3 步:我运行比特币
root@ion:~/ion# npm install
root@ion:~/ion/json# npm run build
root@ion:~/ion/json# npm run bitcoin
这是输出日志
第 4 步:我运行核心
root@ion:~/ion# npm run core
这是输出日志
第 5 步:我构建 ION
root@ion:~# cd ion/
root@ion:~/ion# npm install
root@ion:~/ion# npm run build
root@ion:~/ion# npm install -g .
第 6 步:我生成 DID
root@ion:~/ion# ion operation create
这是输出日志
这是我的问题,我不知道我为什么要运行测试网,但它创建了 DID 作为主网。所以,当我解决 DID 时,它证明了这个错误
谢谢。
【问题讨论】:
【参考方案1】:但是当我使用命令“ion operation create”时...
CLI 完全是实验性的(因为它使用了一个测试库)并且自去年以来一直处于开发暂停状态,我们没有预料到有人会知道它,因为我们没有在首页上做广告,但我刚刚打开一个 PR 让它使用 ION SDK,它应该很快被合并,我不确定它是否在我的 PR 之前工作(可能是),但它现在肯定可以工作。
那个 DID 属于 mainet。
CLI 是在假设它以主网为目标的情况下编写的。但没关系,该请求将在测试网中完美运行。 DID 字符串中的test:
前缀在很大程度上只是装饰性的。
但是使用我的 DID(我自己生成),它会显示此错误
由于您正在测试测试网 DID 并且您的节点是这样设置的(在上面的配置中看到"didMethodName": "ion:test",
),因此您必须在您的唯一 DID 后缀字符串前面加上 did:ion:test:<unique_suffix>
,您没有在屏幕截图中,因此错误。我希望这是有道理的。您在屏幕截图中看到的错误消息也说明了这一点。
第 3 步:我使用 DID “did:ion:test:EiC3YoSodQ20tJcgKjLXr65BHr2KwnQWsUnm3VOiYUFMeA”解决,但事实证明“未找到”
ION DID 工具应该可以工作。理智:假设您已将节点设置为能够写入,您是否等待该交易被确认?您可以通过检查批处理写入器每 10 分钟启动时打印出的事务哈希来进行检查(基于您的配置文件 "batchingIntervalInSeconds": 600,
)。即使发布请求立即返回一个 DID 文档,这只是为了方便您知道 1. 节点接受了您的请求并将其排队,以及 2. 显示您的 DID 文档在确认后的外观,纯粹是为了您方便。但我们都知道比特币交易需要一段时间才能确认,尤其是在测试网上,确认时间难以预测。
【讨论】:
以上是关于在 ION SIDETREE 测试网中生成 DID的主要内容,如果未能解决你的问题,请参考以下文章
如何在 jmeter 中生成测试结果 (CSV) 文件和 JTL 文件?