DMC模塊
實例屬性
類型:String
1 | var chain = require('chain'); |
data_dir
dmc 的數據存放目錄
類型:String
1 | chain.data_dir = 'dmc_data_dir'; |
config_dir
dmc 的配置存放目錄
類型:String
1 | chain.config_dir = 'dmc_config_dir'; |
log_level
chain 的鏈日誌輸出級別,可選的值為 “all”, “debug”, “info”, “warn”, “error”, “off”
類型:String
1 | chain.logger = 'all' |
pubkey_prefix
dmc 公鑰前綴
類型:String
1 | chain.pubkey_prefix = 'DM'; |
post
向節點發送請求, resource 指定請求的資源,body 指定請求的數據
類型:String
1 | chain.post(String resource, String body = "") async; |
實例方法
load
加載 load 本身配置
1 | chain.load("chain", { |
參數說明:
- chain: Object ,配置對象。
加載系統 plugin 及其配置
1 | dmc.load( name, cfg ); |
參數說明:
- name : String ,系統 plugin 名稱。
- cfg : Object ,提供給系統 plugin 的配置。[可選]
start
啟動 dmc
1 | chain.start(); |
stop
停止 dmc
1 | chain.stop(); |
系統 plugin
注意:系統 plugin 請配合 dmc.load 實例方法進行使用
http 插件
啟用 DMC 節點上所有的 RPC API
配置說明:
配置名稱 | 配置含義 | 默認值 | 參考值 |
---|---|---|---|
unix-socket-path | 為HTTP RPC創建unix套接字的文件名(相對於數據目錄);設置空白以禁用 | - | - |
http-server-address | 本地 http 服務地址 | 0.0.0.0:8870 | - |
https-server-address | 本地 https 服務地址 | - | - |
https-certificate-chain-file | https 需要包含要在https連接上顯示的證書鏈的文件名PEM格式 | - | - |
https-private-key-file | https 需要PEM格式的具有https私鑰的文件名 | - | - |
https-ecdh-curve | 配置 https ECDH曲線以使用:secp384r1或prime256v1 | secp384r1 | - |
access-control-allow-origin | 指定每個請求返回的訪問控制允許源。 | - | - |
access-control-allow-headers | 指定每個請求返回的訪問控制允許標頭。 | - | - |
access-control-max-age | 指定每個請求要返回的訪問控制最大期限。 | - | - |
access-control-allow-credentials | 指定每個請求是否應返回Access Control Allow Credentials:true | - | - |
max-body-size | RPC 請求允許最大字節 | 1048576 | - |
http-max-bytes-in-flight-mb | http_plugin用於處理http請求的最大大小(MB) | 500 | - |
http-max-in-flight-requests | http_plugin用於處理http請求的最大請求數 | -1 | - |
http-max-response-time-ms | 處理請求的最長時間。 | 30 | - |
verbose-http-errors | 顯示 Http 返回的錯誤日誌 | - | - |
http-validate-host | 驗證 Http 請求 host | 1 | - |
http-alias | 可以多次指定傳入HTTP請求的“主機”標頭的其他可接受值。 | - | - |
http-threads | http線程池中的工作線程數 | 2 | - |
chain 插件
是 DMC 節點上處理和聚合鏈數據所需的核心插件
配置說明:
配置名稱 | 配置含義 | 默認值 | 參考值 |
---|---|---|---|
genesis-json | 指定創世塊數據路徑 | genesis.json | - |
genesis-timestamp | 覆蓋創世塊中的初試時間戳 | - | - |
print-genesis-json | 是否打印創世數據 | false | - |
extract-genesis-json | 從blocks.log中提取genesis_state作為JSON,寫入指定文件,然後退出 | - | - |
fix-reversible-blocks | 是否將數據恢復到不可逆高度 | - | - |
force-all-checks | 在重放不可逆塊時,不要跳過任何可以跳過的檢查 | - | - |
disable-replay-opts | 禁用專門針對重播的優化 | - | - |
replay-blockchain | 是否清除狀態數據然後回滾所有數據 | - | - |
hard-replay-blockchain | 是否清除狀態數據, 然後從區塊日誌中回滾儘可能多的數據 | - | - |
delete-all-blocks | 是否刪除所有的狀態數據和區塊數據 | - | - |
truncate-at-block | 停止出塊, 並在該區塊高度回滾 | 0 | - |
import-reversible-blocks | 用從指定文件導入的塊替換可逆塊數據庫,然後退出 | - | - |
export-reversible-blocks | 將可移植格式的可逆塊數據庫導出到指定文件中,然後退出 | - | - |
snapshot | 要從中讀取快照狀態的文件 | - | - |
net 插件
組成一個網絡
配置說明:
配置名稱 | 配置含義 | 默認值 | 參考值 |
---|---|---|---|
p2p-listen-endpoint | 監聽 p2p 連接的地址和端口 | 0.0.0.0:9876 | - |
p2p-server-addrsss | 提供給其它節點 p2p 服務地址 | p2p-listen-endpoint | - |
p2p-peer-address | 公共的 p2p 對等節點地址 | - | DMC TestNet [ ] |
p2p-max-nodes-per-host | 單個 IP 能夠連接的最大客戶端數量 | 10 | - |
p2p-accept-transactions | 允許通過p2p網絡接收的交易被評估和轉發。 | 1 | - |
p2p-reject-incomplete-blocks | 即使在輕度驗證中也拒絕修剪的簽名塊 | 1 | - |
agent-name | 提供的用於標識此節點的名稱 | DM Test Agent | - |
allowed-connection | 允許連接 | any | ‘any’/‘producers’/‘specified’/‘none’。如果 ‘specified’ ,則必須至少指定一次對等密鑰。如果只有 ‘producers’ ,則不需要對等密鑰。 |
peer-key | 允許連接的對等方的可選公鑰。可多次使用。 | - | - |
max-clients | 接受連接的最大客戶端數,使用0表示無限制 | 25 | - |
connection-cleanup-period | 清理死連接之前等待的秒數 | 30 | - |
max-cleanup-time-msec | 每次清理調用的最大連接清理時間(毫秒) | 10 | - |
net-threads | 線程池中的工作線程數 | 2 | - |
sync-fetch-span | 同步期間從任何單個對等方檢索塊的塊數 | 100 | - |
use-socket-read-watermark | 啟用實驗性套接字讀取水印優化 | 0 | - |
peer-log-format | 記錄對等方消息時用於格式化對等方的字符串。變量用${<variable name>}轉義。 | =[“${_name}” ${_ip}:${_port}] | - |
p2p-keepalive-interval-ms | 對等心跳保持活動消息間隔(毫秒) | 32000 | - |
p2p-tls-security-group-ca-file | 啟用安全組功能時用於驗證對等TLS連接的證書頒發機構的證書文件 | - | - |
p2p-tls-own-certificate-file | 如果啟用TLS,將用於驗證運行節點的證書文件 | - | - |
p2p-tls-private-key-file | p2p tls私鑰文件+p2p tsl自己的證書文件一起自動為對等方啟用僅tls連接。 | - | - |
producer插件
加載出塊節點所需要的功能
配置說明:
配置名稱 | 配置含義 | 默認值 | 參考值 |
---|---|---|---|
max-transaction-time | 事務最大超時時間 | 30(s) | - |
max-irreversible-block-age | 最大的不可逆塊時間 | - | - |
private-key | 簽名程序的公鑰、私鑰 | - | (可多參數) |
signature-provider | 簽名提供程序 | - | - |
greylist-account | 無法使用 CPU 和 NET 的賬號 | - | - |
greylist-limit | CPU/NET虛擬資源的倍數限制 | 1000 | 1-1000 |
produce-time-offset-us | 非最後一個塊產生時間的偏移 | 0 | - |
last-block-time-offset-us | 最後一個塊產生時間的偏移 | -200000 | - |
cpu-effort-percent | 用於生成塊的cpu塊生成時間的百分比 | 80 | - |
last-block-cpu-effort-percent | 用於生成最後一個塊的cpu塊生成時間的百分比 | 80 | - |
max-block-cpu-usage-threshold-us | 考慮區塊已滿的 CPU 區塊生產閾值 | 5000 | - |
max-block-net-usage-threshold-bytes | 考慮區塊已滿的 NET 區塊生產閾值 | 1024 | - |
max-scheduled-transaction-time-per-block-ms | 計劃的最長掛鐘時間 | 100 | - |
subjective-cpu-leeway-us | 在CPU配額不足的情況下開始的事務所允許的時間 | 31000 | - |
incoming-defer-ratio | 傳入事務和延遲事務在排隊等待執行時的比率 | 1 | - |
incoming-transaction-queue-size-mb | 傳入事務隊列的最大大小 | 1024 | - |
disable-api-persisted-trx | 禁用API事務的重新應用 | - | - |
disable-subjective-billing | 禁用 API/P2P 事務的主觀 CPU 計費 | 1 | - |
disable-subjective-account-billing | 從主觀 CPU 計費中排除的帳戶 | - | - |
disable-subjective-p2p-billing | 禁用 P2P 事務的主觀 CPU 計費 | 1 | - |
disable-subjective-api-billing | 禁用 API 事務的主觀 CPU 計費 | 1 | - |
producer-threads | 生產者線程池中的工作線程數 | 2 | - |
snapshots-dir | 快照目錄的位置 | snapshots | - |
trace_api 插件
以消費者為中心的長期 API,用於從指定的塊中檢索退役操作和相關元數據。該插件將序列化的塊跟蹤數據存儲到文件系統中,以便以後通過 HTTP RPC請求進行檢索。
配置說明:
配置名稱 | 配置含義 | 默認值 | 參考值 |
---|---|---|---|
trace-dir | 跟蹤目錄的位置 | traces | - |
trace-slice-stride | 每個“切片”的塊數 | 10000 | - |
trace-minimum-irreversible-history-blocks | 確保保留的塊數 | -1 | - |
trace-minimum-uncompressed-irreversible-history-blocks | 確保經過 LIB 壓縮的塊數 | -1 | - |
trace-rpc-abi | 解碼跟蹤 RPC 響應時使用的ABI。 | - | - |
trace-no-abis | 用於指示 RPC 響應 | true | - |
實例
bp節點
1 | var chain = require('chain'); |
同步節點
1 | var chain = require('chain'); |
genesis.json 文件
1 | { |