|
|
@ -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 rusty@rustcorp.com.au. |
|
|
|
|
|
|
|
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 rusty@rustcorp.com.au. |
|
|
|
|
|
|
|
Cheers!<br> |
|
|
|
Rusty. |
|
|
|