在 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 文件?

在 Robot framework 数据驱动方法中生成测试用例

如何在 Python 中生成动态(参数化)单元测试?

为啥php每次在测试环境(WAMP)中生成相同的会话ID?

如何在我的颤振测试中生成未测试文件的测试覆盖率?

在表中生成测试数据[重复]