Bee Clef 使用了以太坊的外部签名,因为 Bee 必须快速地签发大量的交易。
这是Bee Clef 的签发服务代码:
https://github.com/ethersphere/bee-clef
Clef 将在安装过程中,为矿机创建一个新的以太坊密钥对。请将密钥对的备份保存在安全可靠的地方!
wget https://github.com/ethersphere/bee-clef/releases/download/v0.4.12/bee-clef_0.4.12_amd64.deb
sudo dpkg -i bee-clef_0.4.12_amd64.deb
配置文件存放在 /etc/bee-clef/
一般来说,对于使用包管理器的正常安装,开始使用 Bee Clef 不需要任何配置更改。
一旦安装完成Clef, 它将会在系统后台启动服务。
检查 Clef 是否运行正常,我们可以使用systemctl
来查询 bee-clef 服务的状态。
systemctl status bee-clef
● bee-clef.service - Bee Clef
Loaded: loaded (/lib/systemd/system/bee-clef.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-11-20 23:45:16 GMT; 1min 29s ago
如果你想查看日志打印,你可以使用:
journalctl -f -u bee-clef.service
当 Bee-clef 首次启动时,您应该会看到与以下内容非常相似的内容:
Feb 21 19:52:43 comp-name systemd[1]: Started Bee Clef.
Feb 21 19:52:43 comp-name bee-clef-service[494678]: WARNING!
Feb 21 19:52:43 comp-name bee-clef-service[494678]: Clef is an account management tool. It may, like any software, contain bugs.
Feb 21 19:52:43 comp-name bee-clef-service[494678]: Please take care to
Feb 21 19:52:43 comp-name bee-clef-service[494678]: - backup your keystore files,
Feb 21 19:52:43 comp-name bee-clef-service[494678]: - verify that the keystore(s) can be opened with your password.
Feb 21 19:52:43 comp-name bee-clef-service[494678]: Clef is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
Feb 21 19:52:43 comp-name bee-clef-service[494678]: without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
Feb 21 19:52:43 comp-name bee-clef-service[494678]: PURPOSE. See the GNU General Public License for more details.
Feb 21 19:52:43 comp-name bee-clef-service[494678]: INFO [02-21|19:52:43.862] Using stdin/stdout as UI-channel
Feb 21 19:52:44 comp-name bee-clef-service[494678]: INFO [02-21|19:52:44.036] Loaded 4byte database embeds=146841 locals=3 local=/etc/bee-clef/4byte.json
Feb 21 19:52:44 comp-name bee-clef-service[494678]: {
"jsonrpc":"2.0","id":1,"method":"ui_onInputRequired","params":[{
"title":"Master Password","prompt":"Please enter the password to decrypt the master seed","isPassword":true}]}
Feb 21 19:54:25 comp-name bee-clef-service[494678]: INFO [02-21|19:54:25.048] Rule engine configured file=/etc/bee-clef/rules.js
Feb 21 19:54:25 comp-name bee-clef-service[494678]: INFO [02-21|19:54:25.048] Starting signer chainid=5 keystore=/var/lib/bee-clef/keystore light-kdf=false advanced=false
Feb 21 19:54:25 comp-name bee-clef-service[494678]: INFO [02-21|19:54:25.049] IPC endpoint opened url=/var/lib/bee-clef/clef.ipc
Feb 21 19:54:25 comp-name bee-clef-service[494678]: {
"jsonrpc":"2.0","method":"ui_onSignerStartup","params":[{
"info":{
"extapi_http":"n/a","extapi_ipc":"/var/lib/bee-clef/clef.ipc","extapi_version":"6.1.0","intapi_version":"7.0.1"}}]}
下面这串代码是安全的,可以放心:
{
"jsonrpc":"2.0","id":1,"method":"ui_onInputRequired","params":[{
"title":"Master Password","prompt":"Please enter the password to decrypt the master seed","isPassword":true}]}
一旦 bee
开始与 bee-clef
交互,您应该开始看到日志消息持续刷新,对于定期活动和连接的节点,它们将每隔几秒钟更新一次:
Feb 24 22:29:15 comp-name bee-clef-service[1118]: INFO [02-24|22:29:15.118] Op approved
Feb 24 22:30:17 comp-name bee-clef-service[1118]: INFO [02-24|22:30:17.371] Op approved
Feb 24 22:30:19 comp-name bee-clef-service[1118]: INFO [02-24|22:30:19.344] Op approved
...
Bee 可以通过多种方式与 Bee-clef 通信。如果通过软件包安装,默认方式将使用进程间通信 (IPC) 文件。这是 Bee-clef 在启动时创建的一个特殊文件,Bee 将使用该文件来回发送请求。当 Bee-clef 服务开始运行时,您会注意到出现了一个 /var/lib/bee-clef/clef.ipc
文件。
https://github.com/ethersphere/bee-clef
因为 Bee 需要 Clef 签署许多交易,所以我们必须以最高的运行权限来运行 Clef 。为了确保 Clef 只对来自 Bee 的交易进行签名,我们必须通过创建 Bee专门的用户来运行 clef.ipc 文件,以便该用户只能使用这个 ipc 套接字。
此外,Bee的支票合约活动,都需要 Clef 对其进行签名。
可以在 Bee-clef 代码仓库中找到:
自动更改初始化后权限的 shell 脚本,包括 Clef 配置文件、clef-service
以及 4byte.json
交易签名文件和 rules.js
文件。
最后,一旦 Clef 运行,只需使用 --clef-signer-enable
配置您的Bee 节点以启用Clef,并使用 --clef-signer-endpoint
将Bee 指向正确的ipc 套接字。