欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Swarm Bee配置

程序员文章站 2024-03-12 12:09:20
...

Swarm Bee配置

每个Bee节点可以在启动的时候添加命令行参数来配置,具体参数可以通过bee start --help查看。

例如下边这个例子,我们打开了Bee的debug API,并且设置debug API的监听端口为6666.

bee start \
  --api-addr=:8888 \
  --debug-api-enable=true \
  --debug-api-addr=:6666

配置文件

Bee节点也可以通过提供--config加yaml配置文件的方式来配置。

bee start --config /home/<user>/bee-config.yaml 

提示: 可以通过命令bee printconfig &> bee-default.yaml导出当前配置文件作为默认修改版本。

配置通过软件包管理器安装的Bee

如果你的Bee是通过apt-getyum这样的软件包管理器安装的,在安装过程中会自动生成一个配置文件,Bee启动的时候默认使用这个配置文件。

要修改Bee配置,可以直接修改对应的配置文件,然后重启Bee生效。

Linux

sudo vi /etc/bee/bee.yaml
sudo systemctl restart bee

Mac OS

vi /usr/local/etc/swarm-bee/bee.yaml
brew services restart swarm-bee

自动产生配置文件

通过命令行启动Bee时候,用printconfig替换start可以很简单的生成Bee的配置文件。

例子

bee printconfig \
  --verbosity=5 \
  &> bee-config.yaml

上述命令会生成类似下边的文件内容,其中包含了Bee的默认配置。

配置选项

全局选项

–config

设置Bee配置文件,默认为/home/<user>/.bee.yaml.

启动选项

–api-addr

默认 :1633.

Bee API地址和端口。忽略IP地址,会监听所有地址的对应端口。

–bootnode

默认/dnsaddr/bootnode.ethswarm.org.

设置Bee启动节点的地址(要启动或加入的网络),可以是多个地址。

默认情况下节点会连接到Swarm主网。如果要使用私有或者测试网络,必须配置启动节点。

–clef-signer-enable

默认false.

如果要使用以太坊的Clef作为独立的交易签名器,设置为true。 Clef是以太坊的新功能,需要相应的规则文件或者运行在高级模式下,用来实现对交易和支票的自动签名。

–clef-signer-endpoint

默认为当前操作系统下clef的默认路径。

你也可以为你的Clef签名器指定自定义ipc文件。

–clef-signer-ethernum-address

默认会选择clef下的第一个地址(index 0)。

如果你在Bee Clef中导入了多个key,可以使用这个参数来指定要使用的地址。

注意:如果在Bee Clef中导入了多个地址,必须为每个Bee节点指定对应的签名器地址,第一个地址也需要配置,因为这些地址在导入的时候可能会重新排序。

–cors-allowed-origins

默认为[].

允许的Http/WS API响应地址域。API只会接受对应地址域的请求,例如:

bee start --cors-allowed-origins="*"
bee start --cors-allowed-origins="https://website.ethswarm.org"

–data-dir

默认/home/<user>/.bee.

Bee数据存储路径。包含以下三种类型的数据。

  1. 区块数据

    具体会包含本地pin过的区块数据和文件、缓存的区块数据、或当前节点职责范围内需要提供给对端节点的区块数据。

  2. 状态数据

    本地Bee节点的状态数据,需要备份。

  3. **库(keystore)数据

    包含加密过的私钥,需要备份并且保证私密性。

**注意:**在秘钥库(keystore)中的文件要保证绝对的安全!它们是你的网络身份的加密标记,一旦丢失无法恢复。

–db-capacity

默认5000000.

区块数据容量。区块数据已4086byte作为基础单位,所以总的数据库容量(kb)大概为db-capacity * 4096. 默认值5,000,000个区块大概有20.5gb。为了能够在网络中有效工作,我们建议一个Bee节点的容量至少要2.5gb。一些不参与数据存储的节点可以设置更小的容量。

下边4个参数对应更低层级的配置,是针对LevelDB的Openfile函数的配置。

–db-block-cache-capacity

默认33554432

对应LevelDB的BlcokCacheCapacity.

–db-disable-seeks-compaction

默认false.

对应LevelDB的DisableSeeksCompaction.

–db-open-files-limit

默认200.

**注意:**为了兼容低性能的硬件和操作系统,--db-open-files-limit的默认值设置的比较低。建议如果可能的话,增大到接近10000或者更多。

对应LevelDB的OpenFileCacheCapacity.

–db-write-buffer-size

默认33554432.

对应LevelDB的WriteBuffer.

–debug-api-addr

默认:1635.

Debug API的地址和端口。忽略地址会监听主机的所有接口。

--debug-api-enable必须设置才会生效。

–debug-api-enable

默认false.

设置为true来打开debug api。

–gateway-mode

默认false.

设置为true会关闭API中的一些敏感功能,可以使api地址在公共网络中更安全。

–global-pinning-enable

默认false.

设置为true来打开全局pin功能。

–nat-addr

默认"".

设置对应的NAT公网IP。一般情况下会自动生成,一些特殊情况可能需要手工设置。

–network-id

默认1.

接受新连接的网络ID。主网设置1, 测试网2.

–p2p-addr

默认:1634.

p2p协议消息的IP地址和端口。

–p2p-quic-enable

默认false.

–p2p-ws-enable

默认false.

配置是否打开p2p通信的web-socket传输。

–password

默认"".

解密Swarm标识**的密码。

**注意:**在命令行中设置密码是不安全的。在生成环境中请使用密码文件或环境变量。

–password-file

默认"".

指向解密用的密码文件路径。空字符串密码不需要设置。

–payment-early

默认 1000000000000.

触发Bee结算的最低结算限制。

–payment-threshold

默认 10000000000000.

从对等节点获得付款的最低支付门限,超过这个值才会触发支付。

–payment-tolerance

默认 50000000000000

可容忍的最大欠债,超过这个门限后Bee会从这个节点断开。

–resolver-options

默认 eth:[email protected]:8545.

–standalone

默认 false

如果不想让Bee节点连接网络,设置true. 开发模式下使用。

–swap-enable

默认 true

–swap-endpoint

默认 http://localhost:8545

以太坊区块链交换节点。

–swap-factory-address

默认 anointed contract for the current blockchain id

–swap-initial-deposit

默认 100000000000000000

–tracing-enable

默认 false

–tracing-endpoint

默认 127.0.0.1:6831

–tracing-service-name

默认 bee

–verbosity

默认 info

Bee日志等级:0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=trace

–welcome-message

默认 ""

连接到对端节点时显示的欢迎信息。

环境变量

可以使用环境变量定义Bee的配置。

在环境变量中定义好对应的值以后,直接在命令行参数中使用。

例如:bee start --api-addr $VARIABLE_NAME

配置优先级

Bee配置按照以下优先级(从高到低)加载处理,高优先级中的配置会覆盖低优先级中的值。

  1. 命令行参数
  2. 环境变量
  3. 配置文件
相关标签: Swarm Swarm Bee