FreeTrade has contracted to build the BitcoinQt ProtoShares network so the 18 BTC bounty is off the table. Terms of the agreement are posted here for reference.
Client
Scope is for a Windows-QT client, compilation of windows binaries, genesis block construction, launch support. Other platforms expressly outside the scope.
Proof of Work
1) Momentum Proof-of-Work based upon
https://github.com/InvictusInnovations/BitShares/blob/master/src/momentum.cppModification to support very low end miners ->
1. Require between 256MB - 1GB memory
->To allow for use on very low end equiment
2. Limit A and B such that all possible matches are exhausted in less than 1 second - H would need to change every second and could include new transactions.
->So that faster computers are not disproportionately advantaged over slower ones.
3. Change
Hash(H + A + B) < TargetDifficulty
to
Hash(H + A + B + MemoryHash(A) + MemoryHash(B)) < TargetDifficulty
->To prevent GPUs evaluating this step before adding B to memory.
Aim for following parameters
50 Bit Birthdays
2^26 Max Nonce
sha512 generates 8, 50 bit birthdays or if we do some bit math we could get 10, 50 bit birthdays out of it.
A core i7 can generate about 768 MB of SHA512 hashes / second with OpenSSL which means that if you store the nonce + birthday the throughput would be about 1 GB/sec at peak performance.
Minting Schedule
2) 2 million coin maximum (in 4 years)
5) halve the block reward every 3 months
5% reward block reduction each week until approx 2 million coins issued over 2 years or so, followed by 1% yearly inflation (recomputation of percentage reduction each block would be prone to rounding errors which would cause forks)
Block Interval and Size
3) 5 minute block intervals
Fine.
4) 512 KB max block size.
Fine
Bitcoin Version
6) Derived from very recent version of Bitcoin Qt
Based on 0.8.5 - Lastest Bitcoin-Qt Stable release (2013-09-13 - Bitcoin-Qt version 0.8.5 released)
7) Mining Supported via GUI menu
Fine,
but interface for pooled mining should be considered part of the mining pool project
Launch
The bounty will be paid 1 month after the chain has launched with no fatal bugs.
Require 5 BTC at outset - used for purchase of i7-4770 based computer to be used for mining during testing and minimum of 1 month after launch.
Remaining 13BTC paid 1 month after the chain launched with no fatal bugs.
Amounts are fixed in BTC. Developer bears currency exchange risk of loss or appreciation of BTC in this time period.
Launch Time
Genesis block time and text to be decided by Invictus (assuming non-odious)
uPnP
I had some trouble compiling uPnP into QT clients before - so we'll consider this outside the scope of the project. Resolving configuration issues like this can take days but might be we can find someone who can help with config. Note, there's a crazy guy who stalks the forums accusing any non uPnP client of being a scam, fraud, high treason, etc. Expect him to show up.
DL: 4) I can handle the uPnP issues.
Miner Crashes
I found with MemoryCoin that computers mining 24/7 at max capacity would hard crash randomly, with a frequency of every 24hrs or so. Not sure if this is due to something in the Scrypt code that is hit occassionally, or a consequence of pushing the memory/memorybus so hard. This may be an unresolvable issue (common and hardware based) and unpredictable crashes may have to be regarded as a cost of mining.
DL: 5) Miner crashes are ok so long as the blockchain logic is solid, I can fix those myself.
Conversion To Bitshares
There is a 1-1 conversion rate between ProtoShares and BitShares. Bitshares to be limited to approx 20,000,000 so that ProtoShares miners ownership of Bitshares is not diluted.