<p>Your code works well, but you have an error when you go to call the function getBlock(), with the bitcoin core reference the getBlock() function have a parameter and this parameter is the hash of the block.</p>

<p>So, your code works because of the RPC framework response with an error</p>

<pre><code>bitcoin.rpc.JSONRPCError: {'code': -1, 'message': 'getblock "blockhash" ( verbosity )\n\nIf verbosity is 0, returns a string that is serialized, hex-encoded data for block \'hash\'.\nIf verbosity is 1, returns an Object with information about block &lt;hash&gt;.\nIf verbosity is 2, returns an Object with information about block &lt;hash&gt; and information about each transaction. \n\nArguments:\n1. blockhash    (string, required) The block hash\n2. verbosity    (numeric, optional, default=1) 0 for hex-encoded data, 1 for a json object, and 2 for json object with transaction data\n\nResult (for verbosity = 0):\n"data"             (string) A string that is serialized, hex-encoded data for block \'hash\'.\n\nResult (for verbosity = 1):\n{\n  "hash" : "hash",     (string) the block hash (same as provided)\n  "confirmations" : n,   (numeric) The number of confirmations, or -1 if the block is not on the main chain\n  "size" : n,            (numeric) The block size\n  "strippedsize" : n,    (numeric) The block size excluding witness data\n  "weight" : n           (numeric) The block weight as defined in BIP 141\n  "height" : n,          (numeric) The block height or index\n  "version" : n,         (numeric) The block version\n  "versionHex" : "00000000", (string) The block version formatted in hexadecimal\n  "merkleroot" : "xxxx", (string) The merkle root\n  "tx" : [               (array of string) The transaction ids\n     "transactionid"     (string) The transaction id\n     ,...\n  ],\n  "time" : ttt,          (numeric) The block time in seconds since epoch (Jan 1 1970 GMT)\n  "mediantime" : ttt,    (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT)\n  "nonce" : n,           (numeric) The nonce\n  "bits" : "1d00ffff", (string) The bits\n  "difficulty" : x.xxx,  (numeric) The difficulty\n  "chainwork" : "xxxx",  (string) Expected number of hashes required to produce the chain up to this block (in hex)\n  "nTx" : n,             (numeric) The number of transactions in the block.\n  "previousblockhash" : "hash",  (string) The hash of the previous block\n  "nextblockhash" : "hash"       (string) The hash of the next block\n}\n\nResult (for verbosity = 2):\n{\n  ...,                     Same output as verbosity = 1.\n  "tx" : [               (array of Objects) The transactions in the format of the getrawtransaction RPC. Different from verbosity = 1 "tx" result.\n         ,...\n  ],\n  ,...                     Same output as verbosity = 1.\n}\n\nExamples:\n&gt; bitcoin-cli getblock "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"\n&gt; curl --user myusername --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblock", "params": ["00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"] }\' -H \'content-type: text/plain;\' http://127.0.0.1:8332/\n'}
</code></pre>

<p>I think the problem is your configuration bitcoin-core, the code of the RawProxy, wants bitcoin to be configured in the default directory</p>

<p>This is the code for the how configuration library</p>

<pre><code>if service_url is None:
            # Figure out the path to the bitcoin.conf file
            if btc_conf_file is None:
                if platform.system() == 'Darwin':
                    btc_conf_file = os.path.expanduser('~/Library/Application Support/Bitcoin/')
                elif platform.system() == 'Windows':
                    btc_conf_file = os.path.join(os.environ['APPDATA'], 'Bitcoin')
                else:
                    btc_conf_file = os.path.expanduser('~/.bitcoin')
                btc_conf_file = os.path.join(btc_conf_file, 'bitcoin.conf')

            # Bitcoin Core accepts empty rpcuser, not specified in btc_conf_file
            conf = {'rpcuser': ""}

            # Extract contents of bitcoin.conf to build service_url
            try:
                with open(btc_conf_file, 'r') as fd:
                    for line in fd.readlines():
                        if '#' in line:
                            line = line[:line.index('#')]
                        if '=' not in line:
                            continue
                        k, v = line.split('=', 1)
                        conf[k.strip()] = v.strip()

            # Treat a missing bitcoin.conf as though it were empty
            except FileNotFoundError:
                pass

            if service_port is None:
                service_port = bitcoin.params.RPC_PORT
            conf['rpcport'] = int(conf.get('rpcport', service_port))
            conf['rpchost'] = conf.get('rpcconnect', 'localhost')

            service_url = ('%s://%s:%d' %
                ('http', conf['rpchost'], conf['rpcport']))
</code></pre>

<p>Inside your code, if you have written with correct syntax  you can run the command with the hash of the block, ann example</p>

<pre><code>from bitcoin.rpc import RawProxy
p = RawProxy()
hash = p.getbestblockhash(0)
infoblock = p.getblock(hash)
print(infoblock['time'])
</code></pre>

<p>This is the official <a href="https://bitcoincore.org/en/doc/" rel="nofollow noreferrer">documentation</a> rpc framework of bitcoin core </p>

CC BY-SA 4.0
2019-08-28T17:56:40.733Z
yes, i was just figuring it out myself also. :))) the function in the example does not need an argument.
bomben
CC BY-SA 4.0
2019-08-28T17:57:24.260Z
Yes, I add the reference to the rpc documentation in the my answar
vincenzopalazzo
CC BY-SA 4.0
2019-08-28T18:03:37.913Z
What I did not think of was the need for password and user. We talked earlier today and back then the user credentials where actually not necessary because my `bitcoin-cli` runs on the same machine as `bitcoind`. In this case another form of authentication will be used. But I have to include the RPC connection into python now, right? I try to keep it simple so I will enter a fixed hash into the script.
bomben
CC BY-SA 4.0
2019-08-28T18:24:16.477Z
Did you check your code? Even if I put a fixed hash (I got from `bitcoin-cli` I am not able to get the skript to work. And I am sure the skript should work without authentication stuff because the example from the book also did. Also, your documentation is for `pip install python-bitcoinrpc` but I installed `python-bitcoinlib`. Not sure if it is the same...
bomben
CC BY-SA 4.0
2019-08-28T18:44:04.660Z
The class RawProxy is doing all of the authentication from the config file. I probably have to put username and password into this file.
bomben
CC BY-SA 4.0
2019-08-28T18:49:20.007Z
So, yes the my reference is wrong, sorry the my code example is the another library.
vincenzopalazzo
CC BY-SA 4.0
2019-08-28T18:51:05.530Z
it is not magic but it searches in the standard configuration, I have a personal directory where I aligned bitcoin core and the library generates this error for me `File "/usr/local/lib/python3.6/dist-packages/bitcoin/rpc.py", line 183, in __init__
    with open(cookie_file, 'r') as fd:
FileNotFoundError: [Errno 2] No such file or directory: '/home/vincenzo/.bitcoin/.cookie'`
vincenzopalazzo
CC BY-SA 4.0
2019-08-28T18:52:18.583Z
i think cookie refers to authentication without user/password. for me it does also not work with user/password in the config file. will work on it tomorrow.
bomben
CC BY-SA 4.0
2019-08-28T18:52:39.683Z
I have add the another library because I think the python-bitcoinrpc not is more magic and for a while the idea of what's going on
vincenzopalazzo
CC BY-SA 4.0
2019-08-28T18:53:43.087Z
You have the bitcoin inside the home dir?
vincenzopalazzo
CC BY-SA 4.0
2019-08-28T19:00:34.020Z
Update my answer @Ben
vincenzopalazzo
CC BY-SA 4.0
2019-08-29T05:33:59.250Z
Let us [continue this discussion in chat](https://chat.stackexchange.com/rooms/98012/discussion-between-ben-and-vincenzopalazzo).
bomben
CC BY-SA 4.0
2019-08-28T17:53:44.663Z
2019-08-28T19:00:18.883Z
2019-08-28T19:00:18.883Z
vincenzopalazzo
<p>From Antonopoulos' book I try to use the example 3-3 on page 49 which uses a python skript called <code>rpc_example.py</code> to show the usage of the JSON-RPC API:</p>

<pre><code>    from bitcoin.rpc import RawProxy
    p = RawProxy()
    info = p.getinfo()
    print(info['blocks'])
</code></pre>

<p>which on <code>$ python rpc_example.py</code> should give <code>394875</code>.</p>

<hr>

<p>Of course <code>getinfo</code> has been depricated and I would like to use another function, for example <code>getblock</code>.</p>

<p>I am not sure if I use it correctly or if I have an error in my syntax or if the problem below is due to something related to python.</p>

<hr>

<p>I already had some troubles installing the library with <code>pip install python-bitcoinlib</code> and also did <code>pip3 install python-bitcoinlib</code> because I was not sure if the problem I now have is related to encoding/decoding in python version 2.</p>

<hr>

<p><strong>My code now is</strong> </p>

<pre><code>from bitcoin.rpc import RawProxy
p = RawProxy()
infoblock = p.getblock()
print(infoblock['difficulty'])
</code></pre>

<p>which should print the difficulty of the block, at least in my understanding (I am new to python and to bitcoin).</p>

<p>I get the following error with python 2:</p>

<pre><code>$ python BuchSkripte/49_rpc_example.py
Traceback (most recent call last):
File "BuchSkripte/49_rpc_example.py", line 2, in &lt;module&gt;
    p = RawProxy()
File "/usr/local/lib/python2.7/dist-packages/bitcoin/rpc.py", line 295, in __init__
    **kwargs)
File "/usr/local/lib/python2.7/dist-packages/bitcoin/rpc.py", line 159, 
in __init__
    if '#' in line:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)
</code></pre>

<p>With python3 I get:</p>

<pre><code>$ python3 BuchSkripte/49_rpc_example.py
Traceback (most recent call last):
  File "BuchSkripte/49_rpc_example.py", line 3, in &lt;module&gt;
    infoblock = p.getblock()
  File "/usr/local/lib/python3.5/dist-packages/bitcoin/rpc.py", line 306, in &lt;lambda&gt;
    f = lambda *args: self._call(name, *args)
  File "/usr/local/lib/python3.5/dist-packages/bitcoin/rpc.py", line 238, in _call
    raise JSONRPCError(response['error'])
bitcoin.rpc.JSONRPCError: {'code': -1, 'message': 'getblock "blockhash" ( verbosity )\n\nIf verbosity is 0, returns a string that is serialized, hex-encoded data for block \'hash\'.\nIf verbosity is 1, returns an Object with information about block &lt;hash&gt;.\nIf verbosity is 2, returns an Object with information about block &lt;hash&gt; and information about each transaction. \n\nArguments:\n1. blockhash    (string, required) The block hash\n2. verbosity    (numeric, optional, default=1) 0 for hex-encoded data, 1 for a json object, and 2 for json object with transaction data\n\nResult (for verbosity = 0):\n"data"             (string) A string that is serialized, hex-encoded data for block \'hash\'.\n\nResult (for verbosity = 1):\n{\n  "hash" : "hash",     (string) the block hash (same as provided)\n  "confirmations" : n,   (numeric) The number of confirmations, or -1 if the block is not on the main chain\n  "size" : n,            (numeric) The block size\n  "strippedsize" : n,    (numeric) The block size excluding witness data\n  "weight" : n           (numeric) The block weight as defined in BIP 141\n  "height" : n,          (numeric) The block height or index\n  "version" : n,         (numeric) The block version\n  "versionHex" : "00000000", (string) The block version formatted in hexadecimal\n  "merkleroot" : "xxxx", (string) The merkle root\n  "tx" : [               (array of string) The transaction ids\n     "transactionid"     (string) The transaction id\n     ,...\n  ],\n  "time" : ttt,          (numeric) The block time in seconds since epoch (Jan 1 1970 GMT)\n  "mediantime" : ttt,    (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT)\n  "nonce" : n,           (numeric) The nonce\n  "bits" : "1d00ffff", (string) The bits\n  "difficulty" : x.xxx,  (numeric) The difficulty\n  "chainwork" : "xxxx",  (string) Expected number of hashes required to produce the chain up to this block (in hex)\n  "nTx" : n,             (numeric) The number of transactions in the block.\n  "previousblockhash" : "hash",  (string) The hash of the previous block\n  "nextblockhash" : "hash"       (string) The hash of the next block\n}\n\nResult (for verbosity = 2):\n{\n  ...,                     Same output as verbosity = 1.\n  "tx" : [               (array of Objects) The transactions in the format of the getrawtransaction RPC. Different from verbosity = 1 "tx" result.\n         ,...\n  ],\n  ,...                     Same output as verbosity = 1.\n}\n\nExamples:\n&gt; bitcoin-cli getblock "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"\n&gt; curl --user myusername --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblock", "params": ["00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"] }\' -H \'content-type: text/plain;\' http://127.0.0.1:8332/\n'}
</code></pre>

<python><libbitcoin>
How to convert a python example with getinfo to a usable function?
bomben
# How to convert a python example with getinfo to a usable function?

(Asked by: username_0 on 2019-08-28)

From Antonopoulos' book I try to use the example 3-3 on page 49 which uses a python skript called `rpc_example.py` to show the usage of the JSON-RPC API:

```
    from bitcoin.rpc import RawProxy
    p = RawProxy()
    info = p.getinfo()
    print(info['blocks'])

```

which on `$ python rpc_example.py` should give `394875`.

---

Of course `getinfo` has been depricated and I would like to use another function, for example `getblock`.

I am not sure if I use it correctly or if I have an error in my syntax or if the problem below is due to something related to python.

---

I already had some troubles installing the library with `pip install python-bitcoinlib` and also did `pip3 install python-bitcoinlib` because I was not sure if the problem I now have is related to encoding/decoding in python version 2.

---

**My code now is**

```
from bitcoin.rpc import RawProxy
p = RawProxy()
infoblock = p.getblock()
print(infoblock['difficulty'])

```

which should print the difficulty of the block, at least in my understanding (I am new to python and to bitcoin).

I get the following error with python 2:

```
$ python BuchSkripte/49_rpc_example.py
Traceback (most recent call last):
File "BuchSkripte/49_rpc_example.py", line 2, in <module>
    p = RawProxy()
File "/usr/local/lib/python2.7/dist-packages/bitcoin/rpc.py", line 295, in __init__
    **kwargs)
File "/usr/local/lib/python2.7/dist-packages/bitcoin/rpc.py", line 159, 
in __init__
    if '#' in line:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)

```

With python3 I get:

```
$ python3 BuchSkripte/49_rpc_example.py
Traceback (most recent call last):
  File "BuchSkripte/49_rpc_example.py", line 3, in <module>
    infoblock = p.getblock()
  File "/usr/local/lib/python3.5/dist-packages/bitcoin/rpc.py", line 306, in <lambda>
    f = lambda *args: self._call(name, *args)
  File "/usr/local/lib/python3.5/dist-packages/bitcoin/rpc.py", line 238, in _call
    raise JSONRPCError(response['error'])
bitcoin.rpc.JSONRPCError: {'code': -1, 'message': 'getblock "blockhash" ( verbosity )\n\nIf verbosity is 0, returns a string that is serialized, hex-encoded data for block \'hash\'.\nIf verbosity is 1, returns an Object with information about block <hash>.\nIf verbosity is 2, returns an Object with information about block <hash> and information about each transaction. \n\nArguments:\n1. blockhash    (string, required) The block hash\n2. verbosity    (numeric, optional, default=1) 0 for hex-encoded data, 1 for a json object, and 2 for json object with transaction data\n\nResult (for verbosity = 0):\n"data"             (string) A string that is serialized, hex-encoded data for block \'hash\'.\n\nResult (for verbosity = 1):\n{\n  "hash" : "hash",     (string) the block hash (same as provided)\n  "confirmations" : n,   (numeric) The number of confirmations, or -1 if the block is not on the main chain\n  "size" : n,            (numeric) The block size\n  "strippedsize" : n,    (numeric) The block size excluding witness data\n  "weight" : n           (numeric) The block weight as defined in BIP 141\n  "height" : n,          (numeric) The block height or index\n  "version" : n,         (numeric) The block version\n  "versionHex" : "00000000", (string) The block version formatted in hexadecimal\n  "merkleroot" : "xxxx", (string) The merkle root\n  "tx" : [               (array of string) The transaction ids\n     "transactionid"     (string) The transaction id\n     ,...\n  ],\n  "time" : ttt,          (numeric) The block time in seconds since epoch (Jan 1 1970 GMT)\n  "mediantime" : ttt,    (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT)\n  "nonce" : n,           (numeric) The nonce\n  "bits" : "1d00ffff", (string) The bits\n  "difficulty" : x.xxx,  (numeric) The difficulty\n  "chainwork" : "xxxx",  (string) Expected number of hashes required to produce the chain up to this block (in hex)\n  "nTx" : n,             (numeric) The number of transactions in the block.\n  "previousblockhash" : "hash",  (string) The hash of the previous block\n  "nextblockhash" : "hash"       (string) The hash of the next block\n}\n\nResult (for verbosity = 2):\n{\n  ...,                     Same output as verbosity = 1.\n  "tx" : [               (array of Objects) The transactions in the format of the getrawtransaction RPC. Different from verbosity = 1 "tx" result.\n         ,...\n  ],\n  ,...                     Same output as verbosity = 1.\n}\n\nExamples:\n> bitcoin-cli getblock "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"\n> curl --user myusername --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblock", "params": ["00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"] }\' -H \'content-type: text/plain;\' http://127.0.0.1:8332/\n'}

```

**Tags:** python, libbitcoin


---

## 1 answers

### Answer by username_1 on 2019-08-28. Score: 1 | Accepted answer

Your code works well, but you have an error when you go to call the function getBlock(), with the bitcoin core reference the getBlock() function have a parameter and this parameter is the hash of the block.

So, your code works because of the RPC framework response with an error

```
bitcoin.rpc.JSONRPCError: {'code': -1, 'message': 'getblock "blockhash" ( verbosity )\n\nIf verbosity is 0, returns a string that is serialized, hex-encoded data for block \'hash\'.\nIf verbosity is 1, returns an Object with information about block <hash>.\nIf verbosity is 2, returns an Object with information about block <hash> and information about each transaction. \n\nArguments:\n1. blockhash    (string, required) The block hash\n2. verbosity    (numeric, optional, default=1) 0 for hex-encoded data, 1 for a json object, and 2 for json object with transaction data\n\nResult (for verbosity = 0):\n"data"             (string) A string that is serialized, hex-encoded data for block \'hash\'.\n\nResult (for verbosity = 1):\n{\n  "hash" : "hash",     (string) the block hash (same as provided)\n  "confirmations" : n,   (numeric) The number of confirmations, or -1 if the block is not on the main chain\n  "size" : n,            (numeric) The block size\n  "strippedsize" : n,    (numeric) The block size excluding witness data\n  "weight" : n           (numeric) The block weight as defined in BIP 141\n  "height" : n,          (numeric) The block height or index\n  "version" : n,         (numeric) The block version\n  "versionHex" : "00000000", (string) The block version formatted in hexadecimal\n  "merkleroot" : "xxxx", (string) The merkle root\n  "tx" : [               (array of string) The transaction ids\n     "transactionid"     (string) The transaction id\n     ,...\n  ],\n  "time" : ttt,          (numeric) The block time in seconds since epoch (Jan 1 1970 GMT)\n  "mediantime" : ttt,    (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT)\n  "nonce" : n,           (numeric) The nonce\n  "bits" : "1d00ffff", (string) The bits\n  "difficulty" : x.xxx,  (numeric) The difficulty\n  "chainwork" : "xxxx",  (string) Expected number of hashes required to produce the chain up to this block (in hex)\n  "nTx" : n,             (numeric) The number of transactions in the block.\n  "previousblockhash" : "hash",  (string) The hash of the previous block\n  "nextblockhash" : "hash"       (string) The hash of the next block\n}\n\nResult (for verbosity = 2):\n{\n  ...,                     Same output as verbosity = 1.\n  "tx" : [               (array of Objects) The transactions in the format of the getrawtransaction RPC. Different from verbosity = 1 "tx" result.\n         ,...\n  ],\n  ,...                     Same output as verbosity = 1.\n}\n\nExamples:\n> bitcoin-cli getblock "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"\n> curl --user myusername --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblock", "params": ["00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"] }\' -H \'content-type: text/plain;\' http://127.0.0.1:8332/\n'}

```

I think the problem is your configuration bitcoin-core, the code of the RawProxy, wants bitcoin to be configured in the default directory

This is the code for the how configuration library

```
if service_url is None:
            # Figure out the path to the bitcoin.conf file
            if btc_conf_file is None:
                if platform.system() == 'Darwin':
                    btc_conf_file = os.path.expanduser('~/Library/Application Support/Bitcoin/')
                elif platform.system() == 'Windows':
                    btc_conf_file = os.path.join(os.environ['APPDATA'], 'Bitcoin')
                else:
                    btc_conf_file = os.path.expanduser('~/.bitcoin')
                btc_conf_file = os.path.join(btc_conf_file, 'bitcoin.conf')

            # Bitcoin Core accepts empty rpcuser, not specified in btc_conf_file
            conf = {'rpcuser': ""}

            # Extract contents of bitcoin.conf to build service_url
            try:
                with open(btc_conf_file, 'r') as fd:
                    for line in fd.readlines():
                        if '#' in line:
                            line = line[:line.index('#')]
                        if '=' not in line:
                            continue
                        k, v = line.split('=', 1)
                        conf[k.strip()] = v.strip()

            # Treat a missing bitcoin.conf as though it were empty
            except FileNotFoundError:
                pass

            if service_port is None:
                service_port = bitcoin.params.RPC_PORT
            conf['rpcport'] = int(conf.get('rpcport', service_port))
            conf['rpchost'] = conf.get('rpcconnect', 'localhost')

            service_url = ('%s://%s:%d' %
                ('http', conf['rpchost'], conf['rpcport']))

```

Inside your code, if you have written with correct syntax you can run the command with the hash of the block, ann example

```
from bitcoin.rpc import RawProxy
p = RawProxy()
hash = p.getbestblockhash(0)
infoblock = p.getblock(hash)
print(infoblock['time'])

```

This is the official [documentation](https://bitcoincore.org/en/doc/) rpc framework of bitcoin core

> **Comments:**
> **username_0**: yes, i was just figuring it out myself also. :))) the function in the example does not need an argument.  
> **username_1**: Yes, I add the reference to the rpc documentation in the my answar  
> **username_0**: What I did not think of was the need for password and user. We talked earlier today and back then the user credentials where actually not necessary because my `bitcoin-cli` runs on the same machine as `bitcoind`. In this case another form of authentication will be used. But I have to include the RPC connection into python now, right? I try to keep it simple so I will enter a fixed hash into the script.  
> **username_0**: Did you check your code? Even if I put a fixed hash (I got from `bitcoin-cli` I am not able to get the skript to work. And I am sure the skript should work without authentication stuff because the example from the book also did. Also, your documentation is for `pip install python-bitcoinrpc` but I installed `python-bitcoinlib`. Not sure if it is the same...  
> **username_0**: The class RawProxy is doing all of the authentication from the config file. I probably have to put username and password into this file.  
> **username_1**: So, yes the my reference is wrong, sorry the my code example is the another library.  
> **username_1**: it is not magic but it searches in the standard configuration, I have a personal directory where I aligned bitcoin core and the library generates this error for me `File "/usr/local/lib/python3.6/dist-packages/bitcoin/rpc.py", line 183, in __init__     with open(cookie_file, 'r') as fd: FileNotFoundError: [Errno 2] No such file or directory: '/home/vincenzo/.bitcoin/.cookie'`  
> **username_0**: i think cookie refers to authentication without user/password. for me it does also not work with user/password in the config file. will work on it tomorrow.  
> **username_1**: I have add the another library because I think the python-bitcoinrpc not is more magic and for a while the idea of what's going on  
> **username_1**: You have the bitcoin inside the home dir?  
> **username_1**: Update my answer @Ben  
> **username_0**: Let us [continue this discussion in chat](https://chat.stackexchange.com/rooms/98012/discussion-between-ben-and-username_1).  

---

