Author

Topic: Guide: Bitcoin Cash (BCH) & Bitcoin (BTC) w/ Armory (Read 1537 times)

newbie
Activity: 16
Merit: 0
I got it working Smiley I followed goatpig's instructions. I am augmenting them in-line here to make it easier for noobs like myself to understand.

Quote
If you want to dump BCH but don't want to bother with the BCH node/don't trust their code, you can get around it with this trick:

1) You know all your prefork coins are also available on the BCH chain, therefor you only need blockchain data up to the fork point to move these coins.

2) You have all this data already in the form of the Bitcoin blockchain pre fork, so why not just use that?

3) You'll want to create a copy of your blockchain data then remove blkXXXXX.dat files up until the fork point . I don't know which file this is, something around 950~960, I'm sure someone will figure out the exact file. Note that if you did not move any coins post fork yet, you do not need to delete anything.

Important: If you did not move any coins post fork yet, you do not need to delete anything.

But if you do, you need to delete enough for the newest blocks such that your transactions post fork are obscured.

If you use armory on Linux, delete blocks in ~/.bitcoin/blocks

Quote
4) With this done, you want to sync a fresh DB against this blockchain folder. Do not run a node against it, just start ArmoryDB against this folder, then start ArmoryQt, it will pick up on that DB.

Basically, instead of clicking on the armory icon, go to /usr/local/bin to run ArmoryDB and armory manually.

But I found it difficult, what I did instead was to, while Armory was running, go to the Help menu and choose to rescan and rebuilt data base. A pop up will show up asking to confirm that you want to rescan and rebuild the next time armory starts and that it will take a lot of time. Accept.

Restart armory, and use the terminal to shut down bitcoind by running pkill bit. This way armory will remain offline

Quote
5) Once you're synced (it will show you as offline), you can create your transactions. You should pick utxos manually and keep track of them so as to not create conflicting transactions.

You need to be in expert mode. While armory is running, go to the user menu and select expert. Click on your wallet and select to send bitcoin. Enter the bitcoin cash address and the amounts and the fees (fees for the cash network are x10 lower, I used 20 satoshis per byte and it got confirmed really quickly.

Quote
6) Once your tx is ready, make sure to create it as unsigned, even if your private keys are online. You will get a blob of text that you can feed back into the offline tx GUI. There you will get to sign the tx (make sure to pick the BCH miner), and you will get another blob of text. On the right side of that dialog, you will have a button that's called "Copy Raw Tx (Hex)". This is what you are after. This hex string is your signed tx.

The glob of text is a rectangular block. Copy that, and then click on Offline Transactions on the main armory window (I spent a lot of time looking for this on the menu bar and was trying to figure out if Broadcast Raw Transaction was what I wanted, but no it isn't, the button is in the main window).

Paste the block, click sign, choose the signer and in the window where you pasted the glob, there is another button like goatpig said "Copy Raw Tx (Hex)". Click that and you get a long string.

Quote
7) With the signed tx, all you need now is some online service that will broadcast it to the BCH network for you, and voila.

Paste that here: https://blockdozer.com/insight/tx/send

And you are done.
sr. member
Activity: 525
Merit: 282
I believe you need a BCH node... so you'll need to get BitcoinABC... and BE VERY CAREFUL where you install it to and what directory you tell it to use for it's DataDir, as by default, it will try to install to and use the same directories as Bitcoin Core Sad Undecided Roll Eyes

I hope you have ANOTHER 150gigs of free harddrive space Tongue

Once you have that fully synced you should be able to use Armory with it to create the transactions you need.

Bitcoin Unlimited also supports Bcash, although I have no idea if its stability has improved since the time when I used it to dump my coins. (It crashed multiple times and was basically a sad testament to the devs being incompetent.)
HCP
legendary
Activity: 2086
Merit: 4361
I believe you need a BCH node... so you'll need to get BitcoinABC... and BE VERY CAREFUL where you install it to and what directory you tell it to use for it's DataDir, as by default, it will try to install to and use the same directories as Bitcoin Core Sad Undecided Roll Eyes

I hope you have ANOTHER 150gigs of free harddrive space Tongue

Once you have that fully synced you should be able to use Armory with it to create the transactions you need.
newbie
Activity: 16
Merit: 0
I am trying to split my coins. I just sent a transaction using the legacy signer to a new btc address. But I am unable to make another transaction using the BCH signer as my balance is now 0. How can we see my balance on the cash chain? Do I need to start armory with a modified bitcoind that looks at the cash chain? Is it possible to resend the same transactions with a different signer?
member
Activity: 96
Merit: 10
Sure, that works. I just finished implementing the BCH signer, need to test it against the BCH chain now (it does create sigs that are invalid on the Bitcoin chain). With that part, you do not need to cycle your BTC wallet anymore to move your BCH, as you don't have to import your private keys into another piece of software.

@goatpig: Man you're awesome! If Armory can support that new script that would be incredible! :-)
legendary
Activity: 3738
Merit: 1360
Armory Developer
Sure, that works. I just finished implementing the BCH signer, need to test it against the BCH chain now (it does create sigs that are invalid on the Bitcoin chain). With that part, you do not need to cycle your BTC wallet anymore to move your BCH, as you don't have to import your private keys into another piece of software.
member
Activity: 96
Merit: 10
*** Update: Armory database with Bitcoin Cash blocks is working fine, but tx broadcast of Armory through Bitcoin Unlimited Cash isn't working though. I will try it with BitcoinABC and publish my results. ***

Of course it won't, BCH changed the sighash as part of the replay protection. Armory cannot create valid sigs for BCH at the moment.

I wasn't so sure about how they have implemented their replay protection.

Kind regards,
Mr.Vice
newbie
Activity: 37
Merit: 0
I will wait for the best way to split coins on Armory.
My bcash will continue to exist until that blockchain exists.
legendary
Activity: 3738
Merit: 1360
Armory Developer
*** Update: Armory database with Bitcoin Cash blocks is working fine, but tx broadcast of Armory through Bitcoin Unlimited Cash isn't working though. I will try it with BitcoinABC and publish my results. ***

Of course it won't, BCH changed the sighash as part of the replay protection. Armory cannot create valid sigs for BCH at the moment.
member
Activity: 96
Merit: 10
This is allow spliting coins?
I think that needs two full nodes running. One with bcash and other with bitcoin.

I'm still waiting. I will not risking my bitcoin for bcash.

Actually you would run, like you said, two different nodes on the same system. But at this stage I can not confirm that tx are working with Bitcoin Cash. That's the reason I've put the warning in the beginning.

This guide doesn't show you how to splitt coins, because if you had for e.g. 1 BTC before the fork you have 1 BTC + 1 BCH after the fork. So depending on where you've stored your coins (online/private wallet) your coins are already splitt. In fact they aren't splitt but mirrored.
newbie
Activity: 37
Merit: 0
This is allow spliting coins?
I think that needs two full nodes running. One with bcash and other with bitcoin.

I'm still waiting. I will not risking my bitcoin for bcash.
member
Activity: 96
Merit: 10
How-to manage Bitcoin Cash (BCH) and Bitcoin (BTC) with Armory

This guide is not and shall not be considered as official. What you can achive is a confirmation of your Bitcoin Cash balance in your Armory wallets. The only official use case for Armory is together with Bitcoin Core.
I am currently testing different reference client software of Bitcoin Cash which might work together with Armory.

*** Update: Armory database with Bitcoin Cash blocks is working fine, but tx broadcast of Armory through Bitcoin Unlimited Cash isn't working though. ***

Please check everything for yourself again and make backups of your wallets, because I will take no liability for your actions!
DO NOT SEND ANY TX IN BCH VIA ARMORY UNLESS ONE OF THE ARMORY DEVELOPERS CONFIRMS IF IT IS SAFE!


1): First you have to make sure that your blockchain files are in different folders. So I recommend creating the following folders at "%APPDATA%":
"BitcoinUnlimied"; "ArmoryBU".
2): Now you have to create a new folder in %APPDATA% and name it "BitcoinCore" and create another one called "ArmoryBC" and copy all files from %APPDATA%/Bitcoin into your new BitcoinCore folder and do the same with your Armory folder. You could also just rename it, but this way you have a backup copy in place. You can delete your old folders when you see that everything works.
3): Deinstall Bitcoin Core and install it again at "C:/Program Files/BitcoinCore". Do not just copy and paste, because then you might mess with your registry.
4): Download the latest version of Bitcoin Unlimited with the Bitcoin Cash Release at https://www.bitcoinunlimited.info/download . Other Clients like ABC might also work, but I haven't tested them.
5): Install you BUcash Client at "C:/Program Files/BitcoinUnlimited".
6): You have to set your new paths for Armory in order to distinguish your database directories. For this you will have to create two new shortcuts for Armory and Armory Offline. You can do this by navigating in Windows File Explorer to "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Armory". Move-and-drop with your right mouse button "Bitcoin Armory" to you Desktop and select "create shortcut". Do the same with "Bitcoin Armory Offline".
Now open the property window of your new "Bitcoin Armory" shortcut and add to the line "target" at the end --datadir="C:\Users\[Username]\AppData\Roaming\ArmoryBC".
Now do the same with your "Bitcoin Armory Offline" shortcut. Rename both shortcuts for e.g. "Bitcoin Armory [ BTC ]" and "Bitcoin Armory Offline [ BTC ]" so you can distinguish.
7): Repeat step 6) with the --datadir="C:\Users\[Username]\AppData\Roaming\ArmoryBU" and rename your shortcuts for e.g. with "[BCH]" at the end.
8): The next step is to open your new shortcut "Bitcoin Armory Offline [ BTC ]" and open the settings. Set the bitcoin install path to "C:\Program Files\BitcoinCore" and your bitcoin home dir to "C:\Users\[Username]\AppData\Roaming\BitcoinCore".
9): Repeat step 8) with your shortcut "Bitcoin Armory Offline [BCH]" and use your Bitcoin Unlimited install and BitcoinUnlimited home dir paths instead. You can also import your wallts if you want from your ArmoryBC folder.
10): Now you will have to create shortcuts of your Bitcoin Core and Bitcoin Unlimited the same way you did for "Bitcoin Armory". Open the property window of each shortcut and add to your target line in Core -datadir="C:\Users\[Username]\AppData\Roaming\BitcoinCore" and in Unlimited -datadir="C:\Users\[Username]\AppData\Roaming\BitcoinUnlimited".
11): Your BitcoinUnlimited folder in AppData is empty now. Because of the fork is already in place do not just copy your blocks, chainstate and database folders into BitcoinUnlimited, except you know for sure that these files are older than Aug. 1st. Otherwise download the hole blockchain again with your Bitcoin Unlimited Client. There might be an alternative way by just copying all blk***.dat and .lmdb-files up to the chain splitt, but I haven't tested this method, presumably I can't recommand this.
12): Create a new bitcoin.conf file in %APPDATA%/BitcoinUnlimited and add "server=1" to enable RPC between BUcash and Armory.

I hope this guide will help you.
Jump to: