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:

  1. Mainchain
  2. Testchain – called “Sidechain One” in this guide.

The binary files (for less-technical users) are hosted on Google Drive: https://drive.google.com/drive/folders/1o83i1N4yPbbKT5hVv_IspNVwHV2jUUoT

image

image

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:

image

I have put the contents on the Desktop for convenience:

image

image

B. Importing the UTXOs

First, try to run the Mainchain by entering the Drivenet /bin/ folder:

image

Open a terminal:

image

Start the software by running “./drivenet-qt”:

image

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:

image

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”):

image

Move the loaded_coins.dat file to this directory:

image

Now, rerun by using “./drivenet-qt” in the terminal again:

image

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.

image

Open a second terminal, the same way as before:

image

Run ‘./sidechain-qt’:

image

It’s online!

image

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):

image

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”.

image

image

And then I assume you’ve received 21 BTC.

image

ii. Depositing to a Sidechain

On the mainchain (the “DriveNet” window), click the “Sidechains” tab:

image

On the sidechain (the “Sidechain One” window), click the “Parent Chain” tab:

image

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.

image

Copy it into the Mainchain’s “Sidechain address” field.

image

Enter an amount, and click Deposit:

image

image

Go back to the sidechain “Overview” tab, to wait for your money to arrive.

image

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.

image

image

image

E. Using the Sidechain

We’ve now got 15.9999,0880 BTC on “Sidechain One”.

image

Let’s send it to ourselves, to simulate the act of paying a merchant for a good or service.

image

Get a new address:

image

Send 11 BTC (of our 15.9999,0880) to it:

image

Click “Send”, our balance decreases very slightly, to 15.9998,6380, as we paid a transaction fee. See the bottom right corner:

image

Using the “Coin Control” > “Inputs” button, we can see the new 11 BTC UTXO that we paid to the “merchant” (aka ourselves).

image

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…

image

…and “Withdraw from Sidechain”:

image

On the mainchain, use “Receive” > “Request Payment” > “Copy Address”:

image

Paste that withdrawal address into the sidechain’s “Withdraw Address” field.

image

And pick an amount to withdraw, I picked 10.

Then click send:

image

G. The Slow Return

A key feature of Drivechain is its “slow return” (as it’s often phrased):

image

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).

See also: FAQ Question “I have heard that it will take 3-6 months to transfer money from the sidechain to the mainchain. Won’t that be too slow to be useful?””

Nonetheless, this part involves a little bit of waiting.

Back on the mainchain, click the “Sidechains” tab:

image

Cick the “Sidechains WT^(s)” table:

image

After 6 blocks or so, the withdrawal should show up. It will be inside of a “WT^” container.

image

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.

image

Now you’ll need to waste some serious time. So hit up Reddit and see if there’s anything good (or whatever).

image

image

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.

image

My mainchain balance has increased by about 10. It rose from ~5 to about ~15.

image

Let’s investigate more carefully using the “Coin Control” > “Inputs” window:

image

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