有时候帖子权限会没有修改权限,有最新更新会放在2楼,请先拉到最下面看看有没有更新
官方的教程不太明确所以我写一个中文教程来介绍一下运营商
首先 运营商是什么?
运营商在Subspace网络中扮演重要角色,主要负责提交和执行交易。他们将交易打包成捆并提交到共识链,同时执行共识块中包含的交易并维护相应的链状态。运营商需要较高的硬件要求,必须具备较强的计算能力来处理复杂的交易。此外,运营商需要抵押一定数量的SSC作为担保,以确保他们的行为是诚实的,恶意行为将导致抵押被削减,从而提供加密经济安全。
用我的理解简单说明就是 很类似于L2的和第三方等角色,他是为了兼容其他,比如ETH虚拟机和其他功能等存在的,
比如现在开放的nova域,是为了兼容EVM虚拟机,在运营商的交易也会打包提交给主链,质押行为是为了避免运营商作恶和防止一些恶意行为
配置要求
CPU
- 兼容性:x86-64
- 推荐型号:Intel Ice Lake或更新(Xeon或Core系列);AMD Zen3或更新(EPYC或Ryzen)
- 核心数量:4个物理核心,主频3.4GHz
- 超线程技术:禁用(Intel的Hyper-Threading,AMD的SMT)
- 优先考虑单线程性能:单线程性能比核心数量更重要
存储
- 类型:NVMe SSD
- 容量:1 TB
- 重要性:延迟比吞吐量更重要
内存
- 类型:DDR4 ECC
- 容量:32 GB
操作系统
- 版本:Linux Kernel 5.16或更新版本
网络
- 对称网络速度:最低500 Mbit/s
- 可以访问公网的IP
搭建教程
本教程使用Ubuntu作为操作,其他操作其他请自行参考
查询域ID
首先我们要知道当前网络启动了哪些域ID
目前的3H测试网可以进入该网站查询
一定要确定左上角是你要查询的网络,目前是3H,随后点击开发者和链状态
然后按照指定设置,最后点击+号
成功查询
简单解释一下
0代表域ID是0,因为截至本教程发布时间,3H测试网只有0这一个域ID.域的创建区块高度为 310,356
域所有者信息
ownerAccountId: 这是域的所有者账户ID,为 st7aRUx17s68YZBzxVt7qHC3YYYWPanSXAhWhqBQtHKwtPG1R。
createdAt: 这个域的创建区块高度为 310,356。
genesisReceiptHash: 这是域创世收据的哈希值,为 0x45b310c12c36dd814a3181e729881b7f297fc417a512601b38d55a783eb78a50。
域配置
domainName: 域的名称为 nova。
runtimeId: 运行时ID为 0。
maxBlockSize: 最大区块大小为 3,932,160 字节。
maxBlockWeight: 最大区块权重
refTime: 参考时间为 1,500,000,000,000。
proofSize: 证明大小为 13,835,058,055,282,163,711。
bundleSlotProbability: 打包槽概率为 [1, 1]。
targetBundlesPerBlock: 目标每区块打包数为 10。
operatorAllowList: 运营商允许列表为 Anyone,即任何人都可以成为运营商。
initialBalances: 初始余额列表,其中账户 0xf31e60022e290708c17d6997c34de6a30d09438f 的初始余额为 10,000,000,000,000,000,000,000。
域运行时信息
domainRuntimeInfo:
EVM: 以太坊虚拟机(EVM)的配置信息
chainId: 链ID为 490,000。
这些就是本教程当前创建的域的消息,在后面几天官方会添加新的auto域
查询这个的本身意义不是很大,有个更快速的方法就是直接在Discord问人,可以更快的获得,
搭建运营商node
首先我们需要插入密钥,有旧密钥可以用旧的,没有就创建新的
插入新密码使用如下命令
./node domain key create --base-path /你的目录/你的目录 --domain-id 0
简单解释一下./node 是你node软件的名称,你需要改目录 后面的–domain-id 0 是域ID 他会在你指定目录/domains/0创建key密钥文件 0改成几就是几,注意这里的目录,需要跟后面的node bash目录相同
完整的目录结构如下:
subspace-node/
├── db
├── domains/
│ ├── 0/
│ │ ├── keystore
│ │ └── db
│ ├── 1/
│ │ ├── keystore
│ │ └── db
│ └── ...
└── network
比如我的运行命令如下:
./node domain key create --base-path /root/sub --domain-id 0
得到如下数据
请务必保存好,其中key可以公开,最下面的助记词请你不要公开,key在后面创建有用
同时他会在/root/sub/domains/0/keystore创建密钥文件,里面是你的助记词,请务必注意安全,也要保证有这个文件存在
随后可以运行node了
直接使用上面的信息开始运行node
./node run \
--chain gemini-3h \ #网络
--name ooplay \ #节点名字
--blocks-pruning archive-canonical \ #区块修剪
--state-pruning archive-canonical \ #区块修剪
--base-path /root/sub \ #目录,这里目录一定要跟上面的密钥插入目录一样
-- \
--domain-id 0 \ #域ID
--operator-id 16 \ #你的运营商ID
--listen-on /ip4/0.0.0.0/tcp/40333 #公开,可移除
一定要确定–base-path /root/sub参数跟上面的目录一样,node必须能访问密钥,请仔细阅读上面文件夹结构
在第一次启动的时候,因为你的node没有同步,你如果在这时候就去创建运营商,很有可能会被罚款,所以请一定要在node同步好后,再进行运营商创建因为运营商没有创建,所以你肯定没有运营商ID,所以第一次启动同步的时候可以先移除–operator-id 16 \ #你的运营商ID参数
我的第一次启动参数如下:
./node run \
--chain gemini-3h \
--name ooplay \
--blocks-pruning archive-canonical \
--state-pruning archive-canonical \
--base-path /root/sub \
-- \
--domain-id 0 \
--listen-on /ip4/0.0.0.0/tcp/40333
启动后node开始同步,域必须重新开始同步,并且现实貌似无法使用快速同步等功能
在最开始主链同步的时候,界面跟主链同步差不多
因为域ID 0 是在主链310356创建的,所以你的主链一旦同步到这个区块,就会开始同步域的区块,
到时候界面就会出现有两个区块日志,一个是主链的,一个是域的
如下:
我的图片里面是已经同步完成了,大概花费12小时,部分超过几天才同步好的说明你配置不行
创建运营商
node同步完成后可以创建运营商了
在这里进行创建
看图片信息,这里是输你上面生成的助记词,然后生成key,助记词是12个单词,最好核对一下生成的key是否一致
我们直接输入信息后创建
随后在你的钱包授权提交交易
这里你使用任何钱包地址都可以,提交后该钱包就是这个key运营商的管理员
提交交易后
可以去https://subspace.subscan.io 输入你提交用的钱包地址查询最新交易
如果出现第一个绿色的就是成功了
如果出现第二个就是失败了
失败原因可能是你的key已经创建过,你的质押金额不够,你的提名人最低质押和税不对劲
成功后我们点击成功的那个哈希值
进入哈希详细页面后我们往下拉,在这里可以查看你获得的运营商ID
我获得的ID是18
然后我们回到node进行重启:
添加运营商ID18重新启动:
./node run \
--chain gemini-3h \
--name ooplay \
--blocks-pruning archive-canonical \
--state-pruning archive-canonical \
--base-path /root/sub \
-- \
--domain-id 0 \
--operator-id 18 \
--listen-on /ip4/0.0.0.0/tcp/40333
到这里 一个域ID为0 兼容EVM的 nova煜运营商 18 号 就搭建好了,请一定要确定密钥一定被识别,同步完正常运行后的node应该有如下3个文件夹
并且key文件夹里面一定要有 key文件