Skip to content

Commit

Permalink
TODO list.
Browse files Browse the repository at this point in the history
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
  • Loading branch information
rustyrussell committed Aug 6, 2014
1 parent 6755aaf commit 05c8c33
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 0 deletions.
101 changes: 101 additions & 0 deletions TODO.md
@@ -0,0 +1,101 @@
# TODO list for pettycoind development #

## Implementation ##

### pettycoin binary ###

Before Alpha02:

* [<del>keep around blocks we don't know.</del>](https://github.com/rustyrussell/pettycoin/commit/e37c62e40d2346d2e8ede158fba344355b4aad01#diff-d41d8cd98f00b204e9800998ecf8427e)
* Watching of addresses
* This would be useful for a more efficient gateway, or decent wallet.
* Generate complaints about prev_txhashes being wrong
* If someone managed to sneak this into the network presently, there'd
be no way for nodes to report it.
* disable NAGLE.

Maybe:

* relicense ccan/opt
* It's currently GPLv2, which makes pettycoin binaries GPLv2.
* Remember bad txs
* Use filtering of peers.
* Timeout for slow-syncing peers.
* Timeout old unknown txs.
* Generate complaints for bad tx packets.
* Consider putting txs with unresolved refs into block.
* make pending_block->pend a dynamic array of shards.
* try to guess shards before we ask for them.
* move todos to end of the queue when used once
* penalize peers who make us fail too many todos
* limit simultaneous peers to ask todos
* timeout todos
* off test network.
* Implement not-watching-all-shards.

### pettycoin-gateway binary ###

Before Alpha02:

* Return pettycoin TO_GATEWAY transactions to bitcoin network.

### dumbwallet binary ###

Before Alpha02:

* Don't display confusing total after outgoing transaction.
* We currently display the confirmed total, and the unconfirmed. If
the unconfirmed TX is *from* this account, we should deduct from the
confirmed amount immediately.

## Protocol: ##

Before Alpha02:

* Complaint for tx in wrong shard.
* If someone managed to sneak this into the network presently, there'd
be no way for nodes to report it.
* Include power of 2 previous blocks in prev
* Would allow SPV-style block skips which would enable foldover reward on ancient blocks.
* Multiple gateways
* Merge mining
* Network time consensus
* Foldback of future rewards.

Maybe:

* Piggyback packets
* Respect filtering of peers.
* voting mechanism to bump shard order.

### Testing: ###

I can do these any time, and should:

* sparse
* unit tests
* replay tests
* fuzz testing.

### Cleanups: ###

Most of these are FIXMEs in the code:

* Use push/pull functions instead of marshal.
* Generate push/pull functions
* Generate log helper functions.
* Save log on abort()
* Save recent packets in log.
* ffz in ccan/bitmap
* idle hook in ccan/io

### Performance: ###

I know these will bite eventually, but they're not problems right now:

* Hash table for blocks
* Faster block_ancestor

### Infrastructure: ###

* White paper
3 changes: 3 additions & 0 deletions web/faq.html
Expand Up @@ -518,6 +518,9 @@ <h4 id="status"><a href="#status">
address and can query a running pettycoin to find out what
its balance is.
</p>
<p class="details">
You can see the latest [TODO list](https://github.com/rustyrussell/pettycoin/blob/master/TODO.md) for technical details.
</p>
</div>

<div class="boxed">
Expand Down

0 comments on commit 05c8c33

Please sign in to comment.