JSON-RPC防火墙
JSON-RPC防火墙
介绍
JSON-RPC防火墙是一种可配置的JSON-RPC请求鉴权服务。 管理员可为JSON-RPC调用者创建账号并根据JSON-RPC方法为只读或读写为调用者账号授权。
防火墙使用Basic Auth方式认证鉴权,服务启用后,网络JSON-RPC地址不变,调用者在使用JSON-RPC时需要携带认证信息。
开通服务
点击”以太坊网络名称“后进入以太坊网络详情页面,在页面左侧点击”JSON-RPC防火墙“进入服务页面。
首次进入JSON-RPC防火墙服务时,会弹出服务开启弹出框,点击”确认“后可开通服务,如下图所示。
说明:服务开启后暂无法关闭,请谨慎选择。
创建JSON-RPC权限账号
点击”创建JSON-RPC权限账号“按钮,弹出账号创建弹出框,填写:
- 用户名,由6-12位字母数字构成
- 密码,点击”生成并复制密码“自动创建,服务不会存储密码,请妥善保管
填写完成后点击”确定“创建。如下图所示。
使用账号
创建的账号通过JSON-RPC可以请求区块链网络。其中JSON-RPC的地址可以在”以太坊详情“页面中查看,
如JSON-RPC地址为http://XXX:8081/eth-jsonrpc/cbd72890-22c4-fb2d-262e-101759996922。
JSON-RPC防火墙采用Basic Auth认证方式,开启服务后有以下两种方式通过JSON-RPC调用网络。
方式一:
将创建的用户名和密码,携带在JSON-RPC地址中进行请求,如:
http://userName:passWord@XXX:8081/eth-jsonrpc/cbd72890-22c4-fb2d-262e-101759996922
其中”userName“是账号名,”passWord“是账号密码。
方式二:
将认证信息放到JSON-RPC的请求头中,请求头中增加”Authorization“字段,如:
curl -X POST
http://XXX:8081/eth-jsonrpc/cbd72890-22c4-fb2d-262e-101759996922 \
-H 'Authorization: Basic ZGV2ZWxvcDpYTkZZOHlhZ2JFMFI=' \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
其中Authorization生成方式为:
"Basic " + base64encode(userName:passWord)
更改账号权限
在已创建的账号列表中点击”更改“,弹出权限配置框,可以授权用户所调用的JSON-RPC方法为只读或读写进行授权。如下图所示。
授权方法包括:
- admin,提供节点管理相关方法,如admin.removePeer可以删除网络节点
- debug,提供节点debug相关方法,如debug.TraceBlockByHash可以通过交易hash跟踪交易
- miner,提供挖矿相关方法,如miner.stop()可以停止节点挖矿
- personal,提供账户管理相关方法,如personal.unlockAccount()可以解锁节点账户
- txpool,提供交易池相关方法,如txpool.Status()查看交易池状态
- eth,jsonprc基础方法,提供eth相关方法,如eth.sendTransaction发送交易
- net,提供网络相关方法,如net.peerCount查看节点个数
- rpc,提供rpc相关方法,如rpc.modules查看rpc提供的方法种类
禁用
在已创建的账号列表中点击”禁用“,弹出确认框,点击”确定“禁用该账号。如下图所示。
禁用后,该账号将不能在通过JSON-RPC请求网络。
启用
账号禁用后可点击”启用“,在弹出的确认框中点击”确定“重新开启该账号,如下图所示。
删除
如需删除账号,点击账号列表中的”删除“按钮,在弹出的确认框中点击”确认“,即可删除。
删除后该账号将不能在通过JSON-RPC请求网络。 操作如下图所示。