Updated slightly on Dec 4, 2019. This guide still holds up pretty well!
1. Intro
Here I present a visual guide. It assumes only very basic computer knowledge.
( But it does assume, for now, that you run Linux. Even if you run Mac/Windows, you can use Linux for free by downloading VirtualBox and Ubuntu. You’ll should make a virtual machine with about 40 GB of space and 4 GB of RAM. )
In this guide, we will:
- Send BTC from the mainchain to a sidechain.
- Use the sidechain (send BTC from ourselves to ourselves).
- Send the sidechain-BTC back to the mainchain.
Follow along, and expand each image if you get lost. Or download all the images at once and scroll through them as an album.
2. Getting the Drivechain Files
Source code here:
The binary files (for less-technical users) are hosted on Google Drive: https://drive.google.com/drive/folders/1o83i1N4yPbbKT5hVv_IspNVwHV2jUUoT
A. SHA-256 Hashes
Make sure you’ve downloaded the files correctly!
x64
------------------
DriveNet-4-0.21.00-x86_64-linux-gnu.tar.gz
8AC8B0262F0BAFFF1AD7C30164BAB0D115AF1A483003FA3E12515F0522BE2C30
sidechain-5-0.16.99-x86_64-linux-gnu.tar.gz
5E6533F59DDB79323BF5FCFABF9232B0CE2363EEA6F1C8A03A9E01D40F9F63F5
x32
------------------
DriveNet-4-0.21.00-i686-pc-linux-gnu.tar.gz
8E322F855A493275CB404CDE965379671558DE49E592F9857203549AEEBC1A63
sidechain-5-0.16.99-i686-pc-linux-gnu.tar.gz
5D1E458318FA4C799B81CE92313E7F3E162367AB1F45A77B673A73781711E24E
B. Drivenet-BTC vs Drivenet-Blank
If you want to join the same network as CryptAxe and I, you’ll need to download our UTXO set (2.0 GiB).
UTXO torrent file
----------------------
DriveNetLoadedCoinsV1.tar.gz.torrent
7B633ACE5C5FDD50EA3BB3C0F35ED2FCBD527E2553E41B5133D0DA3A7BF614A1
loaded_coins.dat
0a5ddf44ec2620d7103111da3b7412cbe3f3385edd1a9c9f0eb9292f01e4840f
It’s the July 30th UTXO set from the BTC network at block 534,444. Uncompressed, it is 4.8 GB.
Alternatively, you can just join the Blank Network. It doesn’t load any UTXOs, so it is is more like a testnet or fresh new altcoin.
In the near future, we plan to release a “Drivenet-BCH” that has the Bitcoin Cash UTXO set.
3. The Step-by-Step Tour
A. Setting Up
First, extract the files:
I have put the contents on the Desktop for convenience:
B. Importing the UTXOs
First, try to run the Mainchain by entering the Drivenet /bin/ folder:
Open a terminal:
Start the software by running “./drivenet-qt”:
Drivenet will create a bunch of files and directories.
( You may see a message allowing you to choose the location of the drivenet files. This guide uses the default option “./drivenet”. )
But you will get this error message:
Time to use the loaded_coins.dat file. Navigate to your newly-created /.drivenet/ folder (by clicking into the Files window and pressing “control + L”):
Move the loaded_coins.dat file to this directory:
Now, rerun by using “./drivenet-qt” in the terminal again:
This will load the UTXOs. The very first time, it takes an average computer about 10 minutes. Afterwards it will be instant.
While we are waiting for that, we can at least start up the sidechain.
C. Starting up ‘Sidechain One’
To start up ‘Sidechain One’, go into the sidechain folder (“/bitcoin-0.16.99/” in these images, in later versions the folder is named “/sidechain-N-0.16.99/”). And enter the /bin/ directory.
Open a second terminal, the same way as before:
Run ‘./sidechain-qt’:
It’s online!
D. Sending BTC Main-to-Side
Below, I have arranged the mainchain on the left (in blue) and the sidechain “Sidechain One” on the right (in red):
i. Getting drivenet-BTC
First, in order to send some BTC, you’ll need some BTC to send!
You can get some by:
- Using our Faucet for free coins.
- Mining some ( Help > Debug window > Console > “setgenerate true”).
- Asking me for some in our new telegram group.
- NOT RECOMMENDED claiming a UTXO that you own on the BTC network by importing your private key ( Help > Debug window > Console > “import
") NOT RECOMMENDED
The last method is not recommended, because you should never type your private key into software, unless you’ve checked that software very carefully. Which, at this point, you have not. Furthermore, if you misunderstand how we have implemented replay protection, you may destroy your regular (non-drivenet) BTC funds.
Don’t worry about asking me for BTC. For testing purposes, CryptAxe and I modded the UTXO set to give ourselves 100,000 each. We’re loaded! Plus these are useless testnet coins.
Mining should be easy, at first. Although if you do mine, you may be unwilling or unable to set up blind merged mining and so your presence may be somewhat chaotic for other users.
But that’s what testing is for, I suppose!
In this guide, I will assume you have asked for some BTC. You’d do this, of course, by using the “Receive” tab > “Request Payment” > “Copy Address”.
And then I assume you’ve received 21 BTC.
ii. Depositing to a Sidechain
On the mainchain (the “DriveNet” window), click the “Sidechains” tab:
On the sidechain (the “Sidechain One” window), click the “Parent Chain” tab:
Under the “Parent Chain” tab, you’ll see a bunch of stuff. You need to get a Deposit address under Transfer > Deposit to Sidechain > Copy.
Copy it into the Mainchain’s “Sidechain address” field.
Enter an amount, and click Deposit:
Go back to the sidechain “Overview” tab, to wait for your money to arrive.
It should show up, as “Immature”. Since the coins were created out of nothing, the software classifies these BTC as “mined”. We are going to change that to something drivechain-specific soon.
E. Using the Sidechain
We’ve now got 15.9999,0880 BTC on “Sidechain One”.
Let’s send it to ourselves, to simulate the act of paying a merchant for a good or service.
Get a new address:
Send 11 BTC (of our 15.9999,0880) to it:
Click “Send”, our balance decreases very slightly, to 15.9998,6380, as we paid a transaction fee. See the bottom right corner:
Using the “Coin Control” > “Inputs” button, we can see the new 11 BTC UTXO that we paid to the “merchant” (aka ourselves).
F. Sending BTC Side-to-Main
Now, let us imagine that our hypothetical merchant wants to move his BTC from the sidechain back to the mainchain.
On the sidechain, click on the “Parent Chain” tab…
…and “Withdraw from Sidechain”:
On the mainchain, use “Receive” > “Request Payment” > “Copy Address”:
Paste that withdrawal address into the sidechain’s “Withdraw Address” field.
And pick an amount to withdraw, I picked 10.
Then click send:
G. The Slow Return
A key feature of Drivechain is its “slow return” (as it’s often phrased):
Normally this process would take 3-6 months, but for testing purposes we have sped it up to a matter of minutes (and, at most, 23 hours).
Nonetheless, this part involves a little bit of waiting.
Back on the mainchain, click the “Sidechains” tab:
Cick the “Sidechains WT^(s)” table:
After 6 blocks or so, the withdrawal should show up. It will be inside of a “WT^” container.
This container will accumulate “ACKs” until it either [a] expires, or else [b] successfully reaches the target value (of 141 in this case).
You can see it has moved from 2 up to 7 here.
Now you’ll need to waste some serious time. So hit up Reddit and see if there’s anything good (or whatever).
Looks like I’ve been reading bitcoin-dev long enough, we now have 143 ACKs. The “Approved” field has switched to “true”. This WT^ container transaction can now be included in a mainchain block.
My mainchain balance has increased by about 10. It rose from ~5 to about ~15.
Let’s investigate more carefully using the “Coin Control” > “Inputs” window:
We have two UTXOs:
- 5 BTC – Change from when we sent 16 of our 21 starting BTC to the sidechain.
- 9.98996640 BTC – the 10 BTC side-to-main transfer, minus various sidechain and mainchain fees.
Conclusion
The tour is complete! We demonstrated sending BTC to a different piece of software. Then we sent that BTC back to the mainchain.
comments powered by Disqus