3

These are the commands I'm running after building a clean ubuntu docker image with all the dependencies:

./src/bitcoin-cli -regtest &

It yields the error:

error: too few parameters (need at least command)

Next I ran:

./src/bitcoin-cli -regtest -daemon

which resulted in:

error: too few parameters (need at least command)

finally:

./src/bitcoin-cli -regtest 101 & 

yields:

error: Could not locate RPC credentials. No authentication cookie could be found, and no rpcpassword is set in the configuration file (/root/.bitcoin/bitcoin.conf)

These commands have been taken from the following resource:

https://bitcoin.org/en/developer-examples#regtest-mode

There's a question here, and a corresponding answer that provides a script to start regtest, is that a good solution?

To stop the daemon use the interface or run bitcoin-cli stop.


Next step

so I ran first:

bitcoind -regtest -daemon

and I got the output:

Bitcoin server starting

then I tried:

bitcoin-cli -regtest getinfo

which resulted in:

error: Could not locate RPC credentials. No authentication cookie could be found, and no rpcpassword is set in the configuration file (/root/.bitcoin/bitcoin.conf)

these commands also generated the same output as above:

./src/bitcoin-cli -regtest help  
./src/bitcoin-cli -regtest 101

so I've created the following file:

vim /root/.bitcoin/bitcoin.conf

it's literally just this:

rpcpassword=123

*also tried with this:

server=1
rpcuser=root
rpcpassword=password
rpcconnect=127.0.0.1
rpcport=8332

and now issued the command:

bitcoin-cli -regtest getinfo

which resulted in the following:

error: couldn't connect to server: unknown (code -1)
(make sure server is running and you are connecting to the correct RPC port)

1 Answer 1

6

It seems you're mixing up bitcoind and bitcoin-cli.

bitcoind is the Bitcoin Core daemon. It must be running first before you can do anything. bitcoin-cli is a tool to send RPC commands to a running bitcoind instance.

From the linked documentation page:

bitcoind -regtest -daemon

No need to put a & after the command if you run with -daemon.

Once bitcoind is running, you can for example send the getinfo command using bitcoin-cli:

bitcoin-cli -regtest getinfo

Or send generate 101 to generate 101 blocks:

bitcoin-cli -regtest generate 101

To learn about other commands you can send:

bitcoin-cli -regtest help

That way you could for example learn about the ping command. To learn more about that, you can send:

bitcoin-cli -regtest help ping

You need to specify -regtest for every command, as you can have a daemon running for each network (one for mainnet, one for testnet, one for regtest), or more if you configure each to run in separate directories and network ports.

Note that bitcoin-cli is just a program that speaks JSON-RPC (which is a standardized protocol), albeit somewhat specialized for use with bitcoind. You can connect to bitcoind using any JSON-RPC client (for which libraries exist in all popular languages). To do so, you'll need to configure a username/password for connecting to bitcoind.

To explain what you are seeing:

  • ./src/bitcoin-cli -regtest & won't work as bitcoind is not yet running, and you aren't specifying a command to send.
  • ./src/bitcoin-cli -regtest -daemon likewise.
  • ./src/bitcoin-cli -regtest 101 & looks almost right, except you missed the generate, so you're trying to send the non-existing command 101 to a daemon that is not yet running.
3
  • you're exactly right that I was confused about id and cli, In Next step in the OP I tried to follow your guidance but also I seem to have messed it up, or it otherwise didn't work, I tried to write exactly what I've done, do you see what I've done wrong? Commented Apr 19, 2017 at 12:31
  • You can't change bitcoin.conf while bitcoind is running. Either no rpcuser/rpcpassport is set when bitcoind starts, and it'll use cookie authentication, or it is set, and both bitcoind and bitcoin-rpc will use it. Commented Apr 19, 2017 at 13:05
  • aha- ok. also I started the network like this: bitcoin.stackexchange.com/questions/45881/… which seemed to be better- but now it crashes because the size of my docker container is too small :/ need to figure out how to resize it Commented Apr 19, 2017 at 13:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.