Skip to content

Commit

Permalink
Correct the formatting of HACKING.md; add top-level files reference.
Browse files Browse the repository at this point in the history
Signed-off-by: Rusty Russell <[email protected]>
  • Loading branch information
rustyrussell committed Jan 21, 2016
1 parent 8f18ca9 commit 329f4f7
Showing 1 changed file with 60 additions and 49 deletions.
109 changes: 60 additions & 49 deletions HACKING.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,53 +22,64 @@ does not use threads, so the code flow is generally fairly simple.

Here's a list of parts, with notes:

ccan/ - useful routines from http://ccodearchive.net
- Use make update-ccan to update it.
- Use make update-ccan CCAN_NEW="mod1 mod2..." to add modules

bitcoin/ - bitcoin script, signature and transaction routines.
- Not a complete set, but enough for our purposes.

secp256k1/ - a copy of libsecp256k1.
- TODO: Replace this will the library once 1.0 is well distributed.

test/ - A few standalone test programs
- test_onion: C code to generate and decode the routing onion
(Obsolete; will replace with Sphynx!)
- test_state_coverage: routine to test state machine.

daemon/ - The start of a lightningd daemon and lightning-cli

Networking and comms:
- cryptopkt: cryptographic handshake and comms routines.
- dns: async dns lookup
- netaddr: wrapper type for network addresses.

JSON and command support:
- jsmn/ : a "minimalistic JSON parser" from http://zserge.com/jsmn.html
- json: simple wrappers around jsmn for parsing and creating JSON
- jsonrpc: routines for handing JSON commands (async).
- lightning-cli: simple lightning command line client.

Misc:
- configdir: support for ~/.lightning/config
- controlled_time: support for dev-mocktime to alter time.
- log: logging routines
- pseudorand: pseudorandom wrapper
- secrets: routines for using secret keys.
- timeout: timer support.

Dealing with bitcoin events:
- bitcoind: communication with bitcoind to monitor/send txs.
- watch: wrapper for watching specific events.

Core code:
- lightningd: main routine for lightning
- packets: per-peer packet creation and acceptance routines
- peer: peer routines and data structure.

Feel free to ask questions on the lightning-dev mailing list, or on
#lightning-dev on IRC, or email me at [email protected].

Cheers!
* ccan - useful routines from http://ccodearchive.net
- Use make update-ccan to update it.
- Use make update-ccan CCAN_NEW="mod1 mod2..." to add modules

* bitcoin/ - bitcoin script, signature and transaction routines.
- Not a complete set, but enough for our purposes.

* secp256k1/ - a copy of libsecp256k1.
- TODO: Replace this will the library once 1.0 is well distributed.

* test/ - A few standalone test programs
- test_onion: C code to generate and decode the routing onion (Obsolete; will replace with Sphynx!)
- test_state_coverage: routine to test state machine.

* daemon/ - The start of a lightningd daemon and lightning-cli
- Networking and comms:
- cryptopkt: cryptographic handshake and comms routines.
- dns: async dns lookup
- netaddr: wrapper type for network addresses.

- JSON and command support:
- jsmn/ : a "minimalistic JSON parser" from http://zserge.com/jsmn.html
- json: simple wrappers around jsmn for parsing and creating JSON
- jsonrpc: routines for handing JSON commands (async).
- lightning-cli: simple lightning command line client.

- Misc:
- configdir: support for ~/.lightning/config
- controlled_time: support for dev-mocktime to alter time.
- log: logging routines
- pseudorand: pseudorandom wrapper
- secrets: routines for using secret keys.
- timeout: timer support.

- Dealing with bitcoin events:
- bitcoind: communication with bitcoind to monitor/send txs.
- watch: wrapper for watching specific events.

- Core code:
- lightningd: main routine for lightning
- packets: per-peer packet creation and acceptance routines
- peer: peer routines and data structure.

* Top level:
- funding: tracking of state of a channel, including feesplit logic.
- state: core state machine for the lightning protocol.
- Helpers for lightning-specific transactions
- close_tx: mutual close transaction
- commit_tx: commit transaction (optionally with htlcs)
- permute_tx: code to permute transactions outputs for anon
- Various helper routines:
- find_p2sh_out: helper to find a given tx output.
- gen_state_names: source generator for enum names.
- opt_bits: commandline parser for "bits" (100 satoshi)
- protobuf_convert: conversion to/from protobufs.
- version: helper to print the version and build features.

Feel free to ask questions on the lightning-dev mailing list, or on #lightning-dev on IRC, or email me at [email protected].

Cheers!<br>
Rusty.

0 comments on commit 329f4f7

Please sign in to comment.