I've mentioned in earlier posts that it will be possible for people to claim ("spend") part of the initial distribution using Bitcoin signed "endorsements". I've decide (and updated the code) to also allow staking to be done this way as well -- for the special case of a p2pkh Bitcoin address endorsing a p2pkh Qeditas address.
Originally I intended such "endorsements" to make it easier for Bitcoin holders to sell their part of the distribution by simply signing a message ("endorse <Buyer's Qeditas address>"). Now it's clear to me that everyone may want to claim their part of the distribution using endorsements, since it never requires giving the corresponding Bitcoin private key to the Qeditas software.
I'll have a separate format for testnet endorsements so we can experiment without signing an endorsement that will be valid on the mainnet. For now, that format will be
"testnet:endorse <Qeditas address>"
It's possible that at some point we will want to start the testnet over from scratch and switch to "testnet2:endorse ..." or "testnet3:endorse ..." Obvously such endorsements are intended for testing and will not work on the mainnet. As with all testnets, they should have no monetary value.
Here's a concrete example. I recently started a fresh bitcoind and it generated a wallet with the fresh bitcoin address 1EMyzMEGdjR9QxGXhqN4ZrgtkuVauQRCt. I took the private key (which I'll indicate here by)
Lprivatekey and imported it into my Qeditas wallet.
qeditascli importbtcprivkey Lprivatekey
This also informed me of the corresponding Qeditas (p2pkh) address: QLqM6HdwT6cEaZ3Hx39rBqeKQ1rCpfwcSH
There are no Qeditas assets at this address, of course, just as there have never been bitcoins at 1EMyzMEGdjR9QxGXhqN4ZrgtkuVauQRCt.
However, one of the Bitcoin addresses I do control that had funds in the snapshot is 1LdCQAdQaxT6SjrZhSSKizCtBJBxsTg5z9. Using bitcoind with a wallet that had the private key for this address, I signed the message "testnet:endorse QLqM6HdwT6cEaZ3Hx39rBqeKQ1rCpfwcSH". The signature of the message was:
G2mbgyCbv3rcdkvltUbYiOEwYlobc9XOTbtcQJaUoKZyeejvDkz98+Jft+v1HQlTCZi/bMRnCgYwOADf3uGUBhQ=
(You can verify with a Bitcoin client that the signature matches the message above signed by the address above.)
The Qeditas address corresponding to 1LdCQAdQaxT6SjrZhSSKizCtBJBxsTg5z9 is QgEBWTv7mRKusswb7mkorFzWgZ8g7u5vMS. Since the Bitcoin address had 20,000 satoshis (0.0002 bitcoins) at the snapshot, the Qeditas address has 200,000,000 cants (0.0002 fraenks) in the initial distribution.
I imported this endorsement into my Qeditas wallet:
qeditascli importendorsement QgEBWTv7mRKusswb7mkorFzWgZ8g7u5vMS QLqM6HdwT6cEaZ3Hx39rBqeKQ1rCpfwcSH G2mbgyCbv3rcdkvltUbYiOEwYlobc9XOTbtcQJaUoKZyeejvDkz98+Jft+v1HQlTCZi/bMRnCgYwOADf3uGUBhQ=
The Qeditas wallet now has enough information to sign txs spending the funds at QgEBWTv7mRKusswb7mkorFzWgZ8g7u5vMS, or staking funds held at the address.
It seemed to be a good idea to take the time to explain this in a post now before the testnet begins running. I have some hope that a testnet may be running in the next few days. The code is incredibly slow, so don't expect too much in terms of performance. I also expect there will be bugs and the testnet will need to be restarted multiple times.
If you want to prepare a Qeditas wallet for participating in the testnet, you can do the following (assuming you're on linux and have ocaml):
git clone git://qeditas.org/qeditas.git
mkdir ~/.qeditas
cd qeditas
git checkout dev
./configure
make
If all went well, you'll have executables "qeditascli", "qeditasd" and "qeditasstk" in the qeditas/bin dir. For simplicity, I'll assume this directory is on your PATH.
You should create a qeditas.conf file in ~/.qeditas saying you're using testnet, you're staking and optionally giving your ip if you're listening for peers. Here's how mine looks:
staking=1
testnet=1
ip=108.61.219.125
Generate a fresh bitcoin address with its private key (in WIF format). Then you can use qeditascli to import this private key as indicated above. This will tell you the corresponding Qeditas address. You can then sign a testnet endorsement (using Bitcoin) and import the endorsement (using qeditascli) as I did above.
If someone wants to take part in the testnet, but did not have bitcoins at the time of the snapshot (March 30, 2015), I can sign 10 or so testnet endorsements. (Again, these will only be useful on the testnet, not on the mainnet later.) To do so, do the steps above until you need to sign the endorsement. At that point post the address Qeditas gave you when you used importbtcprivkey. I can then post a signed testnet endorsement that you'll be able to import into your Qeditas wallet.
By the way, if you do all that, you're welcome to try to run qeditasd. It will try to connect to my node, if my node is running. Since I keep restarting it for testing, you will just need to be lucky to connect. Also, at the moment you won't really be able to stake or even verify that your Qeditas funds are in the initial ledger.