首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:'Web3‘对象没有属性'shh’

AttributeError:'Web3‘对象没有属性'shh’
EN

Ethereum用户
提问于 2018-06-25 08:07:05
回答 2查看 1.9K关注 0票数 1
  • Web3.py版本: 4.2.1
  • Python: 3.5.2
  • OS: linux
  • geth版本:1.8.0-unstable
  • 我正在使用geth标志和--rpcapi "admin,eth,net,web3,debug,shh"运行--shh
代码语言:javascript
复制
from web3 import Web3, HTTPProvider
web3 = Web3(HTTPProvider('http://localhost:8545'))          

print ("web3 =", web3.version.api) #4.2.1
print(web3.shh) #error occurs

当我试图运行上面的代码时,我有以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "dd.py", line 11, in <module>
    print(web3.shh)
AttributeError: 'Web3' object has no attribute 'shh'

问:如何修复此错误?

EN

回答 2

Ethereum用户

回答已采纳

发布于 2018-06-25 09:15:48

For web3.py==5.x.x

GethShh

web3.geth.shh对象公开与shh_命名空间下的RPC交互的方法。

For web3.py==4.x.x

=>我们必须添加以下代码行以修复web3.py的错误:

代码语言:javascript
复制
from web3.shh import Shh
Shh.attach(web3, "shh")

=>我们还必须为web3.js添加以下行。而不是使用shh

代码语言:javascript
复制
var Shh = require('web3-shh');   
var shh = new Shh(Shh.givenProvider || 'http://localhost:8545'); 

请参见web3.py的下列解决方案:

代码语言:javascript
复制
from web3 import Web3, HTTPProvider
web3 = Web3(HTTPProvider('http://localhost:8545'))

from web3.shh import Shh  # Added line
Shh.attach(web3, "shh")   # Added line

# Now we call web3.shh as we would like:

# Example
print(web3.shh.version) #5.0
kId = web3.shh.newKeyPair();    
print(kId)
print(web3.shh.getPrivateKey(kId))
...

请参见web3.js的下列解决方案:

代码语言:javascript
复制
$ npm install web3-shh

示例代码:

代码语言:javascript
复制
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));    
if(!web3.isConnected()){console.log("notconnected"); process.exit();}

var Shh = require('web3-shh');
// "Shh.providers.givenProvider" will be set if in an Ethereum supported browser.
var shh = new Shh(Shh.givenProvider || 'http://localhost:8545');

var kId = shh.newSymKey().then(console.log); //returns a valid value.
票数 1
EN

Ethereum用户

发布于 2018-06-25 09:11:34

来自医生们

Whisper协议是不断变化的,不同的主要客户端支持不兼容的版本。

因此,在默认情况下,它目前不包含在web3实例中。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/51992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档