handshakelocal parameter is ignored

+3 votes


Unfortunately the only admin node's DB in my network became corrupt. I have tried to reindex, which did not help, so I have followed your instructions to:

  • delete everything but the multichain.conf and wallet.dat
  • connected to an other node to replicate the data
  • tried to start up the local installation with the -handshakelocal=<address> parameter
The address is the main address I had on the admin node and the only with admin permission. I tried to define the parameter with and without ' ', tried to put it into the multichain.conf, but whenever I try to start the blockchain, it insists on the newly created address:

$ multichaind zolichain1 --handshakelocal=1TFvWaHMkbBUnfGyXJZgtxCmMHmqMytiPz24Lm


MultiChain Core Daemon build 1.0 alpha 18 protocol 10005


Retrieving blockchain parameters from the seed node ...

Blockchain successfully initialized.


Please ask blockchain admin or user having activate permission to let you connect and/or transact:

multichain-cli zolichain1 grant 1UscW9kQinoKp9GncpybXCMPyyZK6m8zr3S8cd connect

multichain-cli zolichain1 grant 1UscW9kQinoKp9GncpybXCMPyyZK6m8zr3S8cd connect,send,receive


What do I do wrong here? 

Many thanks in advance,

Kind Regards,


asked Mar 17, 2016 by Zoli
You probably tried it, but just to check, this is how the parameter should be given:

multichaind zolichain1 -handshakelocal=1TFvWaHMkbBUnfGyXJZgtxCmMHmqMytiPz24Lm

Also are you certain you restored the wallet.dat file to the blockchain directory because (of course) the private key for that address has to be in the wallet.

Sorry I posted a later trial, but yes, I have already tried it with a single dash.
The wallet.dat was not deleted. Should have I copy it aside and copy it back later? The instructions told me only not to delete the wallet.dat

Kind Regards,


OK, I have contacted the dev team and will let you know.
Can you please re-run multichaind with the following additional options:

-debug=mchn -debug=mchnminor -debug=net

And then send us the debug.log file to the email address I'm sending you now.

2 Answers

+1 vote

I have sent you the debug log. It seems that the address does not exist in the wallet.dat anymore, hence I suppose the reinit=1 has destroyed and reinitialised my wallet. This reinit seems to be a bit shaky. Unfortunately I did not back it up (my fault), so I have to start all over again, since I have lost my only admin node :-( Next time I will be more cautious, but I would like to ask you to check the reinit functions.

answered Mar 18, 2016 by zoli
Yes, looking at your logs this is indeed the problem - that address is no longer in the wallet so it can't be used for handshaking. We will improve the message displayed in future to clarify that this is what happened. But I'm not sure what you mean by reinit - do you mean reindex?
Sorry about the wrong parameter. The parameter was reindex as indicated on http://www.multichain.com/qa/304/rebuilding-the-block-database?show=307#a307
Thanks for your reply. The reindexing process is not related to wallet.dat in any way, so the private key was lost from that for some other reason.
Is it possible, that the wallet.dat is recreated when I connected to the daemon on an other node? (multichaind chain1@ -daemon).
Each node has its own wallet.dat but it should not be affected by an incoming connection from another node.
Thanks, then it remains a riddle what caused the regeneration of the wallet.dat. Thanks for all your help, I appreciate your support.
+1 vote

Alpha 19, just released, now displays a message when the handshakelocal address cannot be used because it is not in the wallet. Thanks again for reporting this.

answered Mar 31, 2016 by MultiChain