3id-blockchain-utils 中文文档教程

发布于 4年前 浏览 23 更新于 3年前

3id-blockchain-utils

standard-readme compliantCircleCInpmnpmCodecov

这个包包含一堆实用程序,3ID 和 3Box 使用这些实用程序来创建和验证来自区块链的链接地址。

Tabel of Contents

Install

$ npm install --save 3id-blockchain-utils

Usage

将包导入您的项目

import { createLink, validateLink, authenticate } from '3id-blockchain-utils'

使用库创建和验证链接:

const did = 'did:3:bafypwg9834gf...'
const proof = await createLink(did, '0x123abc...', ethereumProvider)
console.log(proof)

const verified = await validateLink(proof)
if (verified) {
  console.log('Proof is valid', proof)
} else {
  console.log('Proof is invalid')
}

使用库进行 3ID 身份验证:

await authenticate(message, '0x123abc...', ethereumProvider)

Supported blockchains

您可以在下面看到一个表格,其中列出了支持的区块链及其提供者对象。

BlockchainCAIP-2 namespaceSupported providers
Ethereumeip155metamask-like ethereum provider
FilecoinfilFilecoin Wallet Provider

Maintainers

@oed

Adding support for a blockchain

如果您想为 3ID 添加对新区块链的支持,这是这样做的地方。 该库使用 CAIP-10 以与区块链无关的方式表示帐户。 如果您要添加的区块链还不是 CAIP 标准的一部分,您应该确保将其添加到那里。

要开始添加对给定区块链的支持,请添加路径为:src/blockchains/.js 的文件。 该模块需要导出三个函数:

  • createLink - creates a LinkProof object which associates the specified AccountID with the DID
  • validateLink - validates the given LinkProof
  • authenticate - signs a message and returns some entropy based on the signature. Needs to be deterministic

它还需要导出一个名为namespace 的常量。 此常量是一个字符串,其中包含 CAIP-2 chainId 命名空间。

请参阅 src/blockchains/ethereum.js 以了解如何为 eip155 (ethereum) CAIP-2 命名空间实现的示例。

最后在 src/index.js 中添加对您的区块链的支持。 只需将它添加到 handlers 数组即可。

Test

通过运行测试代码:

$ npm test

Licence

Apache-2.0 或 MIT

3id-blockchain-utils

standard-readme compliantCircleCInpmnpmCodecov

This package contains a bunch of utilities that is used by 3ID and 3Box in order to create and verify links from blockchain addresses.

Tabel of Contents

Install

$ npm install --save 3id-blockchain-utils

Usage

Import the package into your project

import { createLink, validateLink, authenticate } from '3id-blockchain-utils'

Use the library to create and verify links:

const did = 'did:3:bafypwg9834gf...'
const proof = await createLink(did, '0x123abc...', ethereumProvider)
console.log(proof)

const verified = await validateLink(proof)
if (verified) {
  console.log('Proof is valid', proof)
} else {
  console.log('Proof is invalid')
}

Use the library for 3ID authenticate:

await authenticate(message, '0x123abc...', ethereumProvider)

Supported blockchains

Below you can see a table which lists supported blockchains and their provider objects.

BlockchainCAIP-2 namespaceSupported providers
Ethereumeip155metamask-like ethereum provider
FilecoinfilFilecoin Wallet Provider

Maintainers

@oed

Adding support for a blockchain

If you want to add support for a new blockchain to 3ID this is the place to do so. This library uses CAIP-10 to represent accounts in a blockchain agnostic way. If the blockchain you want to add isn't already part of the CAIP standards you shold make sure to add it there.

To begin adding support for a given blockchain add a file with the path: src/blockchains/<blockchain-name>.js. This module needs to export three functions:

  • createLink - creates a LinkProof object which associates the specified AccountID with the DID
  • validateLink - validates the given LinkProof
  • authenticate - signs a message and returns some entropy based on the signature. Needs to be deterministic

It also needs to export a constant called namespace. This constant is a string which contains the CAIP-2 chainId namespace.

Please see src/blockchains/ethereum.js for an example of how this is implemented for the eip155 (ethereum) CAIP-2 namespace.

Finally add support for your blockchain in src/index.js. Simply add it to the handlers array.

Test

Test the code by running:

$ npm test

Licence

Apache-2.0 OR MIT

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文