익명 19:29

Help: Unable to connect using bitcoinrpc in python to my local bitcoin node

Help: Unable to connect using bitcoinrpc in python to my local bitcoin node

For the life of me I can't figure this out...

I was having trouble getting my machine to port forward 8332, but 8333 seemed fine, so I ended up moving my rpcport to 8334, which seems to connect now but I keep getting this error now on the following python script...

My Python Script(named bitcoin104.py)

from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
# rpc_user and rpc_password are set in the bitcoin.conf file
#rpc_user = "myusername"
#rpc_password = "myuserpass"
rpc_connection = AuthServiceProxy("http://myusername:[email protected]:8334")
print(rpc_connection.get_info())

When i run it I get the following error...

PS D:\PROJECTS\python38_env_bitcoin\src\hellobitcoin101> python .\bitcoin104.py
Traceback (most recent call last):
  File ".\bitcoin104.py", line 8, in <module>
    print(rpc_connection.get_info())
  File "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py",
line 139, in __call__
    response = self._get_response()
  File "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", line 179, in _get_response
    http_response = self.__conn.getresponse()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 1344, in getresponse
    response.begin()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 276, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"*
http.client.RemoteDisconnected: Remote end closed connection without response

Here are all the options i have set in my bitcoin.conf file in my local directory for bitcoin...

*port=8333
timeout=30
printtoconsole=1
chain=main
#rpcallowip=127.0.0.1
rpcpassword=myuserpass
rpcport=8334
rpcuser=myusername
server=1*

I ended up commenting out rpcallowip just to give it the best chance of working...

Should also note the node seems to be running fine otherwise, so it is definitely up and running, and when I was first playing around with setup I left the port open for a day and had outside connections happening... So i think that is setup ok. Other then possible something I am doing wrong with the bitcoin.conf file.

And since I switched to port 8334 from 8332 I am at least now not getting a machine/host blocked request message. It seems to at least be communicating with the node now as well. But for some reason it doesn't seem to like the query?

I have no idea what I am doing wrong? Any help would be greatly appreciated as have been banging my head against the monitor all day on this now....



Top Answer/Comment:

So first you want to make sure that Bitcoin core is running. May seem obvious but I've forgotten that sometimes.

Next is the port forwarding. This may be the source of your problem.

You're going to want to go into your ethernet settings and network connection details. In there you will see an IPv4 address, something like 192.168.0.xx. Save that number.

Now go into your router settings, setup a TCP service on 8333 and put the IPv4 into the internal IP section and save.

Now to call this in python I use bitcoinlib.

my code looks like this:

from bitcoinlib.services.authproxy import AuthServiceProxy, JSONRPCException


def rpcConnect():
    try:
        rpc_connection = AuthServiceProxy("http://user:[email protected]:8332")
        return rpc_connection

My bitcoin conf looks like this. Some of these may not be relevant to you

coinstatsindex=1
daemon=1
txindex=1

server=1
prune=0
peerbloomfilters=1

rpcuser=***
rpcpassword=***
rpcport=8332
상단 광고의 [X] 버튼을 누르면 내용이 보입니다