Get Started

MetaID-TS-SDK 源代码已发布在 Github 上,相关 API 和示例代码请以 Github 最新页面为准

https://github.com/metaid-developers/metaid

Introduction

MetaID SDK提供了一套规范标准和方法工具,用来生成和处理遵循MetaID协议的底层区块链数据(这里具体指符合UTXO标准的链, 目前支持BTC链) 。

MetaID SDK的设计目标是提供一个相对统一且高效的方法,大大简化了web3服务的整合,免去了开发者需与多种协议打交道以及数据上链时需自行构建复杂UTXO交易的需求,节省时间且减小了面临兼容性问题的风险。

基于MetaID SDK的简洁性,兼容性,可扩展性,高效性, 传统应用开发者可以快速开发并部署一个运行在UTXO链上的Dapp应用。

Core Concepts

MetaID SDK有两个核心概念:连接器(connector)和实体(entity)。

连接器用于身份信息的认证和管理,作为用户在区块链上发布数据的基础。

"实体"是在应用层中使用的术语。它用于管理某种特定数据类型的资源。从编程的角度来看,当你创建一个新的实体实例时,你可以访问其属性,并利用它所提供的一系列可执行链上数据存储和修改的方法。你可以将每一类Entity理解为分别对应于MetaID Specification中的PATH部分。

PIN索引规则

通用

识别Flag

  • metaid

大小写规则

  • 大小写不敏感,索引器可以全部转为小写保存。

Operation

  • init 类型 PIN 所在的交易的 txid 为一个 metaidroottxid

  • initcreate 遵循先到先得原则。

  • 同一区块内 initcreate 不区分先后顺序,索引器应先处理 init 类型 PIN,再处理其他类型 PIN。

    • 先处理 init 是为了得到 roottxid/metaid

Path

  • 对于相同的 path,所有 initcreate 的 PIN 是看最旧的,只有 modify/revoke 才是看最新的。

  • modify/revoke 必须对已入块的 PIN 操作,即 modify/revoke 只对已经入块的 PIN 有效,即使同区块也是无效的。

  • init-PINpath 一定是在以下 path 内,一个 metaid 默认存在这五个一级 path

    • /info

    • /file

    • /protocols

    • /nft

    • /ft

Path 规则

  • /file/protocols/nft/ft 开始的 path 应该是全路径的,如: /protocols/simplebuzz/file/my-pfp.jpg

Installation

Method 1: 使用 yarn 或 npm

// 使用 yarn
yarn add @metaid/metaid 

// 使用 npm
npm install --save @metaid/metaid

Method 2: 以 src 方式引入到你的原生 JS 项目中

该方法会把 npm 版本的包转换成浏览器能运行的包,无需打包工具(如 webpack)。

  1. 初始化一个本地项目

mkdir generate-metaid-bundle && cd generate-metaid-bundle/ 
yarn init 
// 或者
npm init
  1. 安装 SDK:

npm install --save @metaid/metaid
// 或者
yarn add @metaid/metaid
  1. 写一个 main.js 文件,只需要两行代码:

var metaidSDK = require('@metaid/metaid')
window.metaidSDK = metaidSDK
  1. 使用 npm 全局安装 browserify:

npm install -g browserify
// 或者 
yarn global add browserify
  1. 安装完成以后,执行命令:

browserify main.js -o bundle.js

命令运行完成以后,会生成一个 bundle.js 文件。现在我们就可以把这个文件和 HTML 代码放在一起,通过 <script> 标签导入了:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <script src="bundle.js"></script>
    </head>
    <body>
        <div class="app">
             <!-- HTML tag of your page -->
        </div>
        <script>
            // JS code
        </script>
    </body>
</html>

Last updated