forked from ElementsProject/lightning
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Correct the formatting of HACKING.md; add top-level files reference.
Signed-off-by: Rusty Russell <[email protected]>
- Loading branch information
1 parent
8f18ca9
commit 329f4f7
Showing
1 changed file
with
60 additions
and
49 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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. |