Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@abtnode/core

Package Overview
Dependencies
Maintainers
1
Versions
791
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@abtnode/core

ABT Node 的核心状态管理库

  • 0.3.1
  • npm
  • Socket score

Version published
Weekly downloads
1.7K
increased by73.49%
Maintainers
1
Weekly downloads
 
Created
Source

ABT Node State

ABT Node 的核心状态管理库

配置

注意 blockletOwner 和 nodeOwner 首次初始化之后就不能再修改了

  • dataDir: where to store the data of current abt node
  • domain: All blocklets are served under this domain, default to '127.0.0.1'
  • blockletPort: default blocklet listening port, defaults to 5555
  • blockletRegistry: where to list all blocklets
  • blockletOwner.pk: blocklet owner key pair
  • blockletOwner.did
  • nodeOwner.pk: node owner key pair
  • nodeOwner.did
  • keyPair.sk
  • keyPair.pk
  • keyPair.did
  • blocklets:需要预装的 blocklets
    • blocklets[0].name
    • blocklets[0].version
    • blocklets[0].autoStart

API

Core

  • initNode(config): 初始化,根据配置或者按照默认值生成节点的 KeyPair,并且创建核心数据文件、文件夹
  • startNode:启动节点的 daemon,serve 出来 blocklet manager 和基本的引导页面
  • stopNode:停止节点,只能从命令行调用
  • getNodeInfo: 获取节点信息,包括启动时间、所有者

用户管理

  • addNodeOwner(did, pk, challenge, signature):添加节点所有者,需要 owner 钱包签名才行,只能添加一次
  • addNodeMember(did, pk, challenge, signature):添加节点管理员,需要 owner 签发的 vc 才行,可以添加多个,低优先级
  • removeNodeMember(did):删除节点管理员,需要 owner 签名才行,低优先级
  • addBlockletOwner(did, pk):添加 Blocklet Registry 账号,只允许安装自己发布的或者自己购买过的 blocklet

Blocklets

  • initBlocklet(did):获取或创建 blocklet 运行时环境,比如端口号、KeyPair、数据存储文件目录
  • addBlocklet(did):添加/安装 blocklet,需要检查是否购买
  • configBlocklet(did, configList)
  • startBlocklet(did)
  • stopBlocklet(did)
  • removeBlocklet(did)
  • getBlocklet(did)
  • getBlocklets

文件组织

dataDir = /opt/arcblock/abtnode 为例:

  • /opt/arcblock/abtnode
    • /core:存储节点的状态数据
      • node.db:存储 Node State
      • blocklets.db:存储 Blocklet State
      • config.yml:配置文件
    • /shared:分 blocklet 不分版本来存储 blocklet 的数据,在 blocklet 升级过程中不会变
      • forge-release-manager
      • chain-node-manager
    • /cache:分 blocklet 和版本来存储 blocklet 压缩包
      • forge-release-manager
        • v1.2.3:每个版本也有自己的压缩包
    • /blocklets:分 blocklet 和分版本来存储 blocklet 的代码,可以方便的回滚
      • /block-explorer:每个 blocklet 有自己的文件夹
        • v1.2.3:每个版本也有自己的文件夹,存储运行时的代码,比如前端、后端、pm2 配置

Blocklet 安装和启动流程

  • 查找 blocklet,如果不存在直接退出
  • 查找购买记录,验证作者
  • 获取下载链接
  • 尝试下载,如果失败直接退出
  • 解压下载到的压缩包
  • 验证 blocklet 文件是否合法
  • getBlockletEnv(did)
    • port
    • keyPair (pk, sk, did)
    • dataDir
    • appPath
  • 生成配置文件
  • 更新 blocklet 数据库
  • 启动 blocklet
  • 更新 blocklet 数据库

FAQs

Package last updated on 23 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc