http://www.7klian.com

以太坊Clef — 独立生意业务签名器实现

5、与Geth整合
function ApproveListing() {
        url: “extapi://$HOME/.clef/clef.ipc”
请求测试 启动乐成后可以从头打开一个shell,运行查察账号列表的呼吁,举办简朴测试,呼吁为:
官方文档对Clef的描写是:
二、摸索
Clef的法则引擎是一个很强大的对象,可以通过配置法则,让某些请求自动核准执行。
证明法则文件 证明法则文件的目标是防备有人对法则文件举办修改,这里将法则文件的hash利用attest呼吁举办证明。
        address: “0x086278a6c067775f71d6b2bb1856db6e28c30418”,
>  sha256sum rules.js
        address: “0xd9c9cd5f6779558b6e0ed4e6acf6b1947e7fa1f3”,
clef –keystore ./keystore/ –chainid 4 –rpc –rules rules.js
•https://www.jianshu.com/p/ea763d5599d2

8d089001fbb55eb8d9661b04be36ce3285ffa940e5cdf248d0071620cf02ebcd  rules.js
> clef attest 8d089001fbb55eb8d9661b04be36ce3285ffa940e5cdf248d0071620cf02ebcd
固然Clef已经成长了2年多,但一直没有真正应用起来,更没有实现其替代Geth节点的账号打点模块的方针。究其原因,我认为有三点:
clef init
•https://geth.ethereum.org/docs/clef/tutorial
Clef最大的特点是提供了:
在提倡查察账号列表时,需要我们在Clef处事中举办确认。

更多呼吁可查察官网举办利用。
        url: “extapi://$HOME/.clef/clef.ipc”
此时,我们在运行获取账号列表呼吁,不需要核准就可以得到功效。
•https://github.com/ethereum/go-ethereum/tree/master/cmd/clef
> eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[0]})

一、初识
2.利用本钱高。在一些特定场景(如溯源)会利用一个处事账号提倡生意业务,这时候就可以利用Clef举办签名,,但前提是需要业务方维护一个Clef处事,无疑是增加了业务本钱。
通过集成UI API的接口,可以对签名器举办可视化。今朝已有的可视化签名器有:
Clef最终方针是取代Geth的节点账号打点,可用来对生意业务举办签名。Clef可以使DApp不必依赖Geth的帐户打点,当DApp需要对数据(或生意业务)举办签名时,可以将数据发送给Clef,在颠末授权同意后,Clef将把签名返回给DApp。
    url: “extapi://$HOME/.clef/clef.ipc”
•account_new 建设账号•account_list 列表账号列表•account_signTransaction 生意业务签名•account_signData 签名数据•account_signTypedData 对切合EIP712[1]的布局化数据举办签名•account_ecRecover 理会已签名数据对应的账号地点•account_import 账号导入•account_export 账号导出
$ geth –rinkeby –signer=~/.clef/clef.ipc console
go-ethereum在1.8.4版本中就开始引入了Clef,并在1.9.0版本中举办了较大的进级,其主要目标是以一种更安详、独立的方法替代以太坊节点的账号打点模块。
    accounts: [{

在clef处事的shell窗口中,此时可以看到是否授权查察,输入y后即授权通过。如下图所示。

初始化 启用Clef处事需要先举办初始化,初始化时需要输入一个暗码,这个暗码是用来加密master种子的。初始化呼吁:
clef –keystore ./keystore/ –chainid 4 –rpc
除了外部API,Clef也提供了UI API,通过–stdio-ui呼吁可以开启一个本机的基于节制台的尺度输入输出UI。
[“0xd9c9cd5f6779558b6e0ed4e6acf6b1947e7fa1f3”, “0x086278a6c067775f71d6b2bb1856db6e28c30418”]
•请求确认,实现一方请求一方确认;•法则引擎,实现自动化请求确认。
客户端可以通过外部API与Clef处事举办交互,Clef支持的外部API有:
2、为什么要有Clef
三、后话
3.有可替代方案。对与节点的账号打点与动静签名都有其他的方案,Clef并不是独一的。
利用法则文件启动clef
    }, {
4、UI API
可以看到外部API和Geth中的账号打点的personal模块提供的要领雷同。
    return “Approve”
echo ‘{“id”: 1, “jsonrpc”: “2.0”, “method”: “account_list”}’ | nc -U ~/.clef/clef.ipc

> personal.listWallets
    status: “ok [version=6.0.0]”,
Clef本质上是一个
独立的生意业务签名器。Clef 背后的思想是将帐户打点与Geth客户端其它成果分隔。Clef通过 IPC 或 HTTP 袒露了一个轻量API,可以被Dapp用作签名东西。
}
四、参考
启动处事 初始化后就可以启动处事了,启动时我这里指定了keystore目次、chainid、开启了HTTP-RPC处事,端口利用模块8550
[{
1、Clef是什么
•基于Python的,如 QtSigner[2]•基于golang的,如 Clef UI[3]
1.应用场景受限。在Dapp应用中,一般利用MetaMask或其他钱包,用户利用本身的
以太坊账号举办生意业务签名,而不会用到节点中的账号。
3、外部API
> eth.accounts

在Geth v1.9.0内置了通过–signer 将当地或长途Clef处事用作帐户打点。
2、法则引擎
更巨大的法则可参考官网文档:https://github.com/ethereum/go-ethereum/blob/master/signer/rules/rules.go
好比我们上边的查察账号列表的呼吁,需要Clef打点员手动确认,我们通过设置如下法则(一段js代码),可以实现免授权。
1、Clef启用
从官网的描写中,并没有看出Clef的奇特之处,甚至是存在的须要。账号打点在Geth的JSON-RPC API中提供的personal定名空间下的要领就挺全面的。生意业务签名成果在web3中也有提供。那么为什么要独立出一个Clef模块呢?
}]
    }],
法则文件计较hash

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读