Commit Graph

4330 Commits

Author SHA1 Message Date
Janus
bc11675aae lnbase online test: use random node key when making new channel, save node key, multiple actions per invocation 2018-07-13 16:43:24 +02:00
Janus
85cb9bc7f5 lnbase: fix pay(), save htlc_id's, generate onion packet correctly 2018-07-13 16:43:24 +02:00
Janus
44ffdd1936 lnbase/online_test: save short_channel_id to wallet and build onion packet with it 2018-07-13 16:43:24 +02:00
SomberNight
1fc0b1378d calc short_channel_id after funding locked 2018-07-13 16:43:24 +02:00
Janus
a9cfa65f64 lnbase: initial 'payment to remote' attempt 2018-07-13 16:43:24 +02:00
Janus
3d3fe9976c lnbase: formatting, remove imports 2018-07-13 16:43:24 +02:00
Janus
39df2a50b7 lnbase: verify commitment tx'es again 2018-07-13 16:43:24 +02:00
Janus
783209e951 lnbase: infinite amount of incoming payments 2018-07-13 16:43:24 +02:00
Janus
6c96f3a646 lnbase: two payments working, temporarily disable sig check 2018-07-13 16:43:24 +02:00
Janus
39000763ba lnbase: store remote revocation store, don't store all remote revocation points, verify ctn numbers in reestablish 2018-07-13 16:43:24 +02:00
Janus
fe40f0a275 lnbase: add RevocationStore test, remove unnecessary lnd helper functions 2018-07-13 16:43:24 +02:00
Janus
15f5d6d603 lnbase: compact commitment secret storage 2018-07-13 16:43:24 +02:00
Janus
a509852b36 lnbase: no negative commitment number nonsense 2018-07-13 16:43:24 +02:00
Janus
69f5adea2f lnbase: move channel commitment number increment to function 2018-07-13 16:43:24 +02:00
Janus
a33d74420a lnbase: receive repeated payments 2018-07-13 16:43:24 +02:00
Janus
1643cac047 tests: don't use default lightning_peers in online test 2018-07-13 16:43:24 +02:00
Janus
bd7762186c lnbase: channel reestablishment working 2018-07-13 16:43:24 +02:00
SomberNight
109d672bdb bolt-04: implement processing of onion packets 2018-07-13 16:43:24 +02:00
SomberNight
a3e1e5dd47 minor clean-up of prev. util.xor_bytes 2018-07-13 16:43:24 +02:00
SomberNight
2570fd12f8 implement bolt-04 onion packet construction 2018-07-13 16:43:24 +02:00
Janus
b94f93f8b9 lnbase: save channel details in wallet, enable running online test with reestablishment_mode 2018-07-13 16:43:24 +02:00
Janus
0e9f4c4120 lnbase: move waiting for funding_locked to new function, make function for signing and sig conversion 2018-07-13 16:43:24 +02:00
Janus
1d821cb2c6 lnbase: make function for building htlc_tx depending on if it is for_us/we_receive 2018-07-13 16:43:24 +02:00
Janus
572d01d0c5 lnbase: verify their htlc signature 2018-07-13 16:43:24 +02:00
ThomasV
063c9b2e28 lnbase: standardize to_bytes calls 2018-07-13 16:43:24 +02:00
Janus
50f3c0dd00 lnbase: fix custom local to_self_delay, use node privkey derived from timestamp in online test 2018-07-13 16:43:24 +02:00
Janus
177df75d87 test_lnbase_online: pass password=None to channel_establishment_flow 2018-07-13 16:43:24 +02:00
Janus
73870d0457 lnbase: avoid copying variables, insert newlines 2018-07-13 16:43:24 +02:00
ThomasV
5ebc328ae6 lnbase: derive keys from wallet keystore 2018-07-13 16:43:24 +02:00
Janus
ff7a73ce19 lnbase: avoid local variables, remote useless comments, name basepoints as such 2018-07-13 16:43:24 +02:00
Janus
0a46b1c335 lnbase: set new field in Transaction instead of returning a tuple in make_commitment 2018-07-13 16:43:24 +02:00
Janus
67c5a8ba16 lnbase: set to_self_delay back to 144, defer cltv_expiry problem 2018-07-13 16:43:24 +02:00
Janus
e4434d530d lnbase: use correct delay 2018-07-13 16:43:24 +02:00
Janus
28a6a3c1da lnbase: avoid code duplication, return htlc outpoint dict in make_commitment 2018-07-13 16:43:24 +02:00
Janus
188588936a lnbase: simplify commitment transaction building with open channel 2018-07-13 16:43:24 +02:00
Janus
9a6646c780 lnbase: organize channel data 2018-07-13 16:43:24 +02:00
Janus
07624960e5 lnbase: allow passing KeypairGenerator to channel_establishment_flow, fix derive_privkey 2018-07-13 16:43:24 +02:00
Janus
b433fb24bd lnbase: receiving invoice payment works 2018-07-13 16:43:24 +02:00
Janus
dc5e3e9cfa lnbase: commitment_signed, revoke_and_ack now accepted without errors 2018-07-13 16:43:24 +02:00
SomberNight
0a55216045 bitcoin.py: SCRIPT-related clean-up. transaction.py: construct_witness 2018-07-13 16:43:24 +02:00
Janus
e77c5b3c30 lnbase: fix their new commitment transaction (htlc tx construction still incorrect) 2018-07-13 16:43:24 +02:00
ThomasV
38f3db3712 lnbase: fix bug in message parsing 2018-07-13 16:43:24 +02:00
ThomasV
ab715438c6 follow up b5eb7dd7683f24f03c80ab8f612658b5f3966eb1 2018-07-13 16:43:24 +02:00
Janus
fdef6d5987 lnbase: attempt at making htlc_signature to send (currently remote fails due to wrong num_htlcs in commitment_signed) 2018-07-13 16:43:24 +02:00
ThomasV
612f6958fe simplification 2018-07-13 16:43:24 +02:00
Janus
3b79d58237 lnbase: add TODO explaining how to verify htlc_signature given to us 2018-07-13 16:43:24 +02:00
Janus
12457dea3d lnbase: verification of new local commitment working 2018-07-13 16:43:24 +02:00
Janus
0d1a9f6e6c lnbase: derive next keys when making updated local commitment transaction 2018-07-13 16:43:24 +02:00
Janus
bef837de85 lnbase: try to receive payment, work on commitment tx with htlcs 2018-07-13 16:43:24 +02:00
Janus
0564d93379 lnbase: handle commitment transaction update (receive funds, not working yet) 2018-07-13 16:43:24 +02:00
Janus
c21d2159db simnet/testnet support in bolt11, set max-htlc-value-in-flight 2018-07-13 16:43:24 +02:00
SomberNight
c1fbd55dfe transaction.py: sign_txin. allow override for get_preimage_script.
test_commitment_tx_with_all_five_HTLCs_untrimmed_minimum_feerate now passes
2018-07-13 16:43:24 +02:00
ThomasV
e7e3558fba redundant: you subscribed only to 'updated' 2018-07-13 16:43:24 +02:00
ThomasV
eb6be6d77d follow-up prev commit 2018-07-13 16:43:24 +02:00
ThomasV
52b94035d9 lnbase: verify remote signature 2018-07-13 16:43:24 +02:00
SomberNight
e34d6d0885 channel_establishment_flow: use get_per_commitment_secret_from_seed 2018-07-13 16:43:24 +02:00
Janus
0d40f06fcc lnbase: improve htlc_tx generation (only localsig wrong) 2018-07-13 16:43:24 +02:00
SomberNight
f3d9474c06 get_per_commitment_secret_from_seed: small clean-up 2018-07-13 16:43:24 +02:00
Janus
ba265da02a fix derive_secret 2018-07-13 16:43:24 +02:00
SomberNight
3a5e3f19db get_per_commitment_secret_from_seed (not working yet) 2018-07-13 16:43:24 +02:00
Janus
e0d28e3f6e lnbase: avoid race while waiting for funding_locked, wait for un-reversed hash 2018-07-13 16:43:24 +02:00
Janus
af8374b02e complete bolt11 port to ecdsa instead of secp256k1 2018-07-13 16:43:24 +02:00
SomberNight
527712df48 channel_establishment_flow: wait for confirmations of funding txn 2018-07-13 16:43:24 +02:00
ThomasV
82146871eb add processing flow for funding_locked 2018-07-13 16:43:24 +02:00
ThomasV
64c8c74445 lnbase: fix parameters to make_commitment in htlc test 2018-07-13 16:43:24 +02:00
SomberNight
1bd4b5e73e transaction.py: shortcut witness/scriptSig serialisation 2018-07-13 16:43:24 +02:00
Janus
c6e621a910 lnbase: add some comments 2018-07-13 16:43:24 +02:00
Janus
bb9938c52e lightning-hub: update rpc stubs, do not ignore them in gitignore 2018-07-13 16:43:24 +02:00
ThomasV
836fae809c lnbase: fix initial commitment transaction 2018-07-13 16:43:24 +02:00
SomberNight
e7bae0fe5d refactor storage of channels, path finding 2018-07-13 16:43:24 +02:00
Janus
e6b22e9d56 avoid duplicating bech32 module 2018-07-13 16:43:24 +02:00
Janus
c5a9b2d19a lnbase: more work on make_htlc_tx 2018-07-13 16:43:24 +02:00
Janus
80c8ea15e0 lnbase: make_htlc_tx 2018-07-13 16:43:24 +02:00
ThomasV
f4c7702c0a fix: use remote_per_commitment_point 2018-07-13 16:43:24 +02:00
ThomasV
205cd259fd lnbase: derive blinded pubkey 2018-07-13 16:43:24 +02:00
ThomasV
0c8a6e535e lnbase: fix variable name 2018-07-13 16:43:24 +02:00
ThomasV
3b3732e82d lnbase: add privkey derivation 2018-07-13 16:43:24 +02:00
ThomasV
b9633896da add test for key derivation 2018-07-13 16:43:24 +02:00
ThomasV
d5db39ce27 lnbase: key derivation (WIP) 2018-07-13 16:43:24 +02:00
Janus
66d139b515 lnbase: test signing of first htlc test case 2018-07-13 16:43:24 +02:00
Janus
53ddc373d5 lnbase: make_received_htlc 2018-07-13 16:43:24 +02:00
ThomasV
0edba56315 fix hash in make_offered_htlc 2018-07-13 16:43:24 +02:00
ThomasV
a14b54dbe5 cleanup lnbase tests 2018-07-13 16:43:24 +02:00
Janus
d6145d0685 lightning-hub: remove path hack, use relative imports 2018-07-13 16:43:24 +02:00
SomberNight
9796ef264e naive route finding 2018-07-13 16:43:24 +02:00
Janus
d3d23066e9 lnbase: offered htlc script construction 2018-07-13 16:43:24 +02:00
ThomasV
02d272d790 use acceptable variable names 2018-07-13 16:43:24 +02:00
ThomasV
1ded2fd7b2 lightning: separate testing from main code 2018-07-13 16:43:24 +02:00
ThomasV
5a3cbc0907 lightning: store network view 2018-07-13 16:43:24 +02:00
ThomasV
85e6708b44 lnbase: parse ipv6, fix transport bug 2018-07-13 16:43:24 +02:00
ThomasV
1d6527c2ec lnbase: fix read_message, reduce verbosity 2018-07-13 16:43:24 +02:00
ThomasV
e6c3b27605 lnbase: implement key rotation, request initial sync in localfeatures 2018-07-13 16:43:24 +02:00
ThomasV
dcd4ea23db lnbase: verify signature in node_announcement 2018-07-13 16:43:24 +02:00
SomberNight
47ed815882 bitcoin.py: implement add_number_to_script. fix CSV arg in make_commitment. 2018-07-13 16:43:24 +02:00
ThomasV
13cb82a203 lnbase: fix test 2018-07-13 16:43:24 +02:00
SomberNight
905998e87a implement script_num_to_hex. fix encoding of argument for CSV in make_commitment 2018-07-13 16:43:24 +02:00
SomberNight
f1017b9ed7 fixes for make_commitment, but still incorrect destination address (csv arg?) 2018-07-13 16:43:24 +02:00
ThomasV
1d319ff22f lnbase: fix tx amounts 2018-07-13 16:43:24 +02:00
Janus
63e345910e lightning-hub: include ln relative to current directory 2018-07-13 16:43:24 +02:00
Janus
446b5c9f45 lnbase_test: add first commitment tx with 5 htlcs test 2018-07-13 16:43:24 +02:00
ThomasV
005f6165fa lnbase: fix locktime and nsequence 2018-07-13 16:43:24 +02:00
Janus
a543ec27fb lnbase_test: insert remote_signature and compare fields independently 2018-07-13 16:43:24 +02:00
ThomasV
5aba0b9538 lnbase: create unit test for commitment tx 2018-07-13 16:43:24 +02:00
ThomasV
4a4a521f4b lnbase: fix signature index 2018-07-13 16:43:24 +02:00
ThomasV
90bab35789 lnbase: initial commitment transaction 2018-07-13 16:43:24 +02:00
ThomasV
598a844d6f lnbase: fix funding address, funding_output_index 2018-07-13 16:43:24 +02:00
ThomasV
ca04043781 follow up 1aac9e59ed957898fceef99b29b9cc17d7843569 2018-07-13 16:43:24 +02:00
ThomasV
534bc2997b lnbase: communication privkey belongs to peer 2018-07-13 16:43:24 +02:00
Janus
33c5e63f81 lnbase: more parts of channel establishment 2018-07-13 16:43:24 +02:00
Janus
f2fac43c21 lnbase: remove unnecessary try/except 2018-07-13 16:43:24 +02:00
Janus
86bc6a2345 lnbase: lnbase_test must use threadsafe task submission 2018-07-13 16:43:24 +02:00
ThomasV
a702202e84 lnbase: decorator that handles exceptions 2018-07-13 16:43:24 +02:00
Janus
208a6870ac lnbase: fix shutdown when lnbase has exception in main_loop 2018-07-13 16:43:24 +02:00
Janus
c05e429416 lnbase: print exceptions from main_loop 2018-07-13 16:43:24 +02:00
Janus
903380ad5d lnbase: initialize loop variable in main 2018-07-13 16:43:24 +02:00
Janus
c0a8fd811f lnbase: add lnbase_test 2018-07-13 16:43:24 +02:00
ThomasV
1c90479f55 lnbase: expose wallet object in LNWorker 2018-07-13 16:43:24 +02:00
Janus
0c1e31339a lnbase: merge initialize and main_loop 2018-07-13 16:43:24 +02:00
Janus
c87afe36d2 lnbase: handle error during channel establishment 2018-07-13 16:43:24 +02:00
Janus
ecc1c7a8cc lnbase: channel establishment flow, avoid using Wallet instance 2018-07-13 16:43:24 +02:00
ThomasV
10bb6463e8 lnbase: use relative imports 2018-07-13 16:43:24 +02:00
Janus
4e2ab7cb6b lnbase: support simnet/testnet, create accepted open_channel message 2018-07-13 16:43:24 +02:00
Janus
193b675316 lnbase: use valid pubkeys in open_channel 2018-07-13 16:43:24 +02:00
Janus
aec48f76bd lnbase: try sending open_channel 2018-07-13 16:43:24 +02:00
ThomasV
d247eecfd8 lnbase: add draft handlers 2018-07-13 16:43:24 +02:00
Janus
b24f989b79 lnbase: avoid reimplementing int.to_bytes 2018-07-13 16:43:24 +02:00
Janus
d90490f4d4 lnbase: avoid reimplementing int.from_bytes 2018-07-13 16:43:24 +02:00
Janus
fe7d1ccd7f lnbase: do not catch all exceptions, tolerate calculations with variables from kwargs 2018-07-13 16:43:24 +02:00
ThomasV
b64e97a68b integrate lnbase with network 2018-07-13 16:43:24 +02:00
ThomasV
14d267b554 lnbase: process ping messages 2018-07-13 16:43:24 +02:00
ThomasV
d5bd965aa5 lnbase: create main loop 2018-07-13 16:43:24 +02:00
ThomasV
14837ba01d lnbase: save buffer for next read 2018-07-13 16:43:24 +02:00
ThomasV
26823b0b61 lnbase: Peer class 2018-07-13 16:43:24 +02:00
ThomasV
11b4666880 lnbase: fix json loading and indentation 2018-07-13 16:43:24 +02:00
Janus
40a158e914 lightning: do not list python files as resources, use lightning spec generated serialization 2018-07-13 16:43:21 +02:00
ThomasV
485c2c6c23 lightning network base 2018-07-13 16:35:43 +02:00
Janus
f2798d09ea kivy: paste test seed using xclip, lightning: do not catch BaseException unnecessarily, fix clearSubscribers, detect passworded wallet correctly 2018-07-13 16:35:43 +02:00
ThomasV
4426ea2e70 simplify parameters, add lndhost to config 2018-07-13 16:35:43 +02:00
Janus
ea5a42d2eb lightning: add --simnet and --lightning switches 2018-07-13 16:35:43 +02:00
Janus
be5af242ed lightning: assert result type, add invoice qr dialog 2018-07-13 16:35:42 +02:00
Janus
88befdbc92 lightning: kivy: open channel button in invoice 2018-07-13 16:35:42 +02:00
Janus
4602f87173 lightning: python3.5 compat 2018-07-13 16:35:42 +02:00
Janus
911595f90f lightning: add missing import, set console to none initially 2018-07-13 16:35:42 +02:00
Janus
2bb59fe464 lightning: do not require lock for broadcast tx, it is thread-safe 2018-07-13 16:35:42 +02:00
Janus
d1986dd163 lightning: save key derivation point 2018-07-13 16:35:42 +02:00
Janus
3e7d2d29bb lightning: separate thread for publish transaction 2018-07-13 16:35:42 +02:00
Janus
ee576d3ead lightning: use queueing lock 2018-07-13 16:35:42 +02:00
Janus
a13fb91ea4 lightning: less junk on console, quicker shutdown 2018-07-13 16:35:42 +02:00
Janus
7034153c06 lightning: don't receive too much data, workaround by reading byte by byte 2018-07-13 16:35:42 +02:00
Janus
702a2919ec lightning: complete moving of lightning objects, acquire net/wallet lock while answering lightning requests 2018-07-13 16:35:42 +02:00