Commit Graph

4291 Commits

Author SHA1 Message Date
Janus
c6ad21889d ln: htlc state machine (not used yet) 2018-06-26 19:32:19 +02:00
Janus
c23a4f10bd ln: save channels in dict, warn on invoice exceeding max_htlc amount 2018-06-26 19:32:19 +02:00
ThomasV
6949d37251 lightning: connect send button 2018-06-26 19:32:19 +02:00
ThomasV
424a346834 lightning GUI: use existing receive and send tabs with lightning invoices 2018-06-26 19:32:19 +02:00
Janus
a7052175d2 ln: don't make invoice if peer can't possibly pay, append _sat to sat
parameters to avoid confusion
2018-06-26 19:31:41 +02:00
ThomasV
a31df98b1d lnworker: generate and save private key 2018-06-26 19:31:41 +02:00
ThomasV
e3fac04b75 follow up previous commit 2018-06-26 19:31:41 +02:00
ThomasV
b874c5c8b0 lnworker: separate invoice creation from payment flow 2018-06-26 19:31:41 +02:00
Janus
8dbd607f66 ln: restore channels correctly after restart
* save funding_locked_received: if a node already sent us
funding_locked, save it to avoid superfluous messages

* use Queues instead of Futures: this ensure that we don't error if we
receive two messages of the same type, and in avoids having to delete
futures in finally blocks. A queue monitor could be added to detect
queue elements that are not popped.

* request initial routing sync: since we don't store the graph yet, it
is better to request the graph from the Peer so that we can route

* channel_state cleanup: now each channel should have a state, which is
initialized to OPENING and only marked OPEN once we have verified that
the funding_tx has been mined
2018-06-26 19:31:41 +02:00
ThomasV
bc7022b439 fix channel_reestablish 2018-06-26 19:31:41 +02:00
ThomasV
cddc1c64fd lnbase: fix read_message 2018-06-26 19:31:41 +02:00
Janus
285f7a3962 ln: restore functionality 2018-06-26 19:31:41 +02:00
Janus
735d1c1457 ln: save remote node_id in channel 2018-06-26 19:31:41 +02:00
SomberNight
ab14d4ab83 split lnrouter from lnbase 2018-06-26 19:31:41 +02:00
SomberNight
cbc4c391c0 remove function H256 2018-06-26 19:31:41 +02:00
ThomasV
4074bc5d38 fix amount in open_channel, add listchannels command 2018-06-26 19:31:41 +02:00
ThomasV
e3ce4f3657 move on_funding_locked to lnworker 2018-06-26 19:31:41 +02:00
ThomasV
a141233c28 lightning: add payment methods to lnworker 2018-06-26 19:31:41 +02:00
ThomasV
7a0ae08498 lightning: move lnworker code to its own module 2018-06-26 19:31:41 +02:00
ThomasV
efcf959273 fix lnaddr.py following rebase 2018-06-26 19:31:41 +02:00
ThomasV
50758a8e3f update lnbase after crypto refactoring 2018-06-26 19:31:41 +02:00
Janus
18b335cf01 lnbase: remove lnbase stub 2018-06-26 19:31:41 +02:00
ThomasV
5ecfb42112 lnbase: pass password to mktx 2018-06-26 19:31:41 +02:00
ThomasV
c74ec38f2e qt: fix password passed to open_channel, cleanup 2018-06-26 19:31:41 +02:00
Janus
c7a0b61368 lnbase: mSAT hygiene, multiple multi-hop payments can be received 2018-06-26 19:31:41 +02:00
Janus
4644c68733 kivy: port lightning ui to lnbase 2018-06-26 19:31:41 +02:00
Janus
c796ef9fcc lightning: remove hub based approach, port qt gui to lnbase 2018-06-26 19:31:41 +02:00
Janus
91284dba13 lnbase: use small buffer when reading, support new_channel without payment in online test, send channel_reserve_satoshis 2018-06-26 19:30:08 +02:00
Janus
cad74463f2 lnbase: use correct cltv_expiry calculation (use invoice) 2018-06-26 19:30:08 +02:00
Janus
fbeff88515 lnbase: fix multi-hop payments 2018-06-26 19:30:08 +02:00
Janus
e05d37f5c0 lnbase: fix onion-hop payload construction again (cltv currently broken) 2018-06-26 19:30:08 +02:00
Janus
7a2f2ea904 lnbase: fix multi-hop fees, initial handling of received update_add_htlc during payment 2018-06-26 19:30:08 +02:00
Janus
71655fd705 lnbase: calculate cltv_expiry for onion_packet correctly 2018-06-26 19:30:08 +02:00
Janus
9569a46166 lnbase: try multi-hop onion package, type safety 2018-06-26 19:30:08 +02:00
SomberNight
a6317164ca PathFinder: change path element semantics from "from node, take edge" to "to get to node, use edge" 2018-06-26 19:30:08 +02:00
SomberNight
ac64246086 create route from path, that includes extra info needed for routing 2018-06-26 19:30:08 +02:00
SomberNight
230e112238 bolt-04: decryption of errors 2018-06-26 19:30:08 +02:00
Janus
d043ed9b21 lnbase online test: use random node key when making new channel, save node key, multiple actions per invocation 2018-06-26 19:30:08 +02:00
Janus
57c578b28c lnbase: fix pay(), save htlc_id's, generate onion packet correctly 2018-06-26 19:30:08 +02:00
Janus
83ace8ada4 lnbase/online_test: save short_channel_id to wallet and build onion packet with it 2018-06-26 19:30:08 +02:00
SomberNight
79b2144672 calc short_channel_id after funding locked 2018-06-26 19:30:08 +02:00
Janus
1fb5561011 lnbase: initial 'payment to remote' attempt 2018-06-26 19:30:08 +02:00
Janus
eb8d1ee9a7 lnbase: formatting, remove imports 2018-06-26 19:30:08 +02:00
Janus
26e821e34e lnbase: verify commitment tx'es again 2018-06-26 19:30:08 +02:00
Janus
e6c499fef2 lnbase: infinite amount of incoming payments 2018-06-26 19:30:08 +02:00
Janus
d4b549b63f lnbase: two payments working, temporarily disable sig check 2018-06-26 19:30:08 +02:00
Janus
ef0c840b22 lnbase: store remote revocation store, don't store all remote revocation points, verify ctn numbers in reestablish 2018-06-26 19:30:08 +02:00
Janus
dbb8ff362f lnbase: add RevocationStore test, remove unnecessary lnd helper functions 2018-06-26 19:30:08 +02:00
Janus
7a55ae19b6 lnbase: compact commitment secret storage 2018-06-26 19:30:08 +02:00
Janus
2cf8b8ae6f lnbase: no negative commitment number nonsense 2018-06-26 19:30:08 +02:00
Janus
3a7f6b0186 lnbase: move channel commitment number increment to function 2018-06-26 19:30:08 +02:00
Janus
cf615eb65e lnbase: receive repeated payments 2018-06-26 19:30:08 +02:00
Janus
510e3e4662 tests: don't use default lightning_peers in online test 2018-06-26 19:30:08 +02:00
Janus
6b1451b566 lnbase: channel reestablishment working 2018-06-26 19:30:08 +02:00
SomberNight
d5333a2a2d bolt-04: implement processing of onion packets 2018-06-26 19:30:08 +02:00
SomberNight
5824a0a790 minor clean-up of prev. util.xor_bytes 2018-06-26 19:30:08 +02:00
SomberNight
1d75df5509 implement bolt-04 onion packet construction 2018-06-26 19:30:08 +02:00
Janus
9134aa30e4 lnbase: save channel details in wallet, enable running online test with reestablishment_mode 2018-06-26 19:30:08 +02:00
Janus
b57d07c294 lnbase: move waiting for funding_locked to new function, make function for signing and sig conversion 2018-06-26 19:30:08 +02:00
Janus
4d1bffdc7a lnbase: make function for building htlc_tx depending on if it is for_us/we_receive 2018-06-26 19:30:08 +02:00
Janus
3d8e560c1f lnbase: verify their htlc signature 2018-06-26 19:30:08 +02:00
ThomasV
44e7d06b34 lnbase: standardize to_bytes calls 2018-06-26 19:30:08 +02:00
Janus
507ff4eea1 lnbase: fix custom local to_self_delay, use node privkey derived from timestamp in online test 2018-06-26 19:30:08 +02:00
Janus
558727e1f3 test_lnbase_online: pass password=None to channel_establishment_flow 2018-06-26 19:30:08 +02:00
Janus
fd5f66b8af lnbase: avoid copying variables, insert newlines 2018-06-26 19:30:08 +02:00
ThomasV
f20a935bef lnbase: derive keys from wallet keystore 2018-06-26 19:30:08 +02:00
Janus
83fbb1a248 lnbase: avoid local variables, remote useless comments, name basepoints as such 2018-06-26 19:30:08 +02:00
Janus
d5e464c29e lnbase: set new field in Transaction instead of returning a tuple in make_commitment 2018-06-26 19:30:08 +02:00
Janus
e53a8107e4 lnbase: set to_self_delay back to 144, defer cltv_expiry problem 2018-06-26 19:30:08 +02:00
Janus
ef0de2a77c lnbase: use correct delay 2018-06-26 19:30:08 +02:00
Janus
0cb722ae3a lnbase: avoid code duplication, return htlc outpoint dict in make_commitment 2018-06-26 19:30:08 +02:00
Janus
28593d703d lnbase: simplify commitment transaction building with open channel 2018-06-26 19:30:08 +02:00
Janus
7a5eb7c9d7 lnbase: organize channel data 2018-06-26 19:30:08 +02:00
Janus
881181a3f2 lnbase: allow passing KeypairGenerator to channel_establishment_flow, fix derive_privkey 2018-06-26 19:30:08 +02:00
Janus
3d60e9d631 lnbase: receiving invoice payment works 2018-06-26 19:30:08 +02:00
Janus
75a004eea1 lnbase: commitment_signed, revoke_and_ack now accepted without errors 2018-06-26 19:30:08 +02:00
SomberNight
81d94a7253 bitcoin.py: SCRIPT-related clean-up. transaction.py: construct_witness 2018-06-26 19:30:08 +02:00
Janus
0ff942c3c8 lnbase: fix their new commitment transaction (htlc tx construction still incorrect) 2018-06-26 19:30:08 +02:00
ThomasV
ac70a10856 lnbase: fix bug in message parsing 2018-06-26 19:30:08 +02:00
ThomasV
5bb310ac10 follow up b5eb7dd7683f24f03c80ab8f612658b5f3966eb1 2018-06-26 19:30:08 +02:00
Janus
64be96fb8a lnbase: attempt at making htlc_signature to send (currently remote fails due to wrong num_htlcs in commitment_signed) 2018-06-26 19:30:08 +02:00
ThomasV
cf677d1f1c simplification 2018-06-26 19:30:08 +02:00
Janus
08d187c650 lnbase: add TODO explaining how to verify htlc_signature given to us 2018-06-26 19:30:08 +02:00
Janus
2bcb294fb3 lnbase: verification of new local commitment working 2018-06-26 19:30:08 +02:00
Janus
30b1416807 lnbase: derive next keys when making updated local commitment transaction 2018-06-26 19:30:08 +02:00
Janus
ee4673c0e9 lnbase: try to receive payment, work on commitment tx with htlcs 2018-06-26 19:30:08 +02:00
Janus
21744f5d68 lnbase: handle commitment transaction update (receive funds, not working yet) 2018-06-26 19:30:08 +02:00
Janus
f962457b9f simnet/testnet support in bolt11, set max-htlc-value-in-flight 2018-06-26 19:30:08 +02:00
SomberNight
32e35e9010 transaction.py: sign_txin. allow override for get_preimage_script.
test_commitment_tx_with_all_five_HTLCs_untrimmed_minimum_feerate now passes
2018-06-26 19:30:08 +02:00
ThomasV
3051b1a33e redundant: you subscribed only to 'updated' 2018-06-26 19:30:08 +02:00
ThomasV
dc45467c46 follow-up prev commit 2018-06-26 19:30:08 +02:00
ThomasV
93e526a952 lnbase: verify remote signature 2018-06-26 19:30:08 +02:00
SomberNight
cb312538dc channel_establishment_flow: use get_per_commitment_secret_from_seed 2018-06-26 19:30:08 +02:00
Janus
e92c468e91 lnbase: improve htlc_tx generation (only localsig wrong) 2018-06-26 19:30:08 +02:00
SomberNight
3108e0bf81 get_per_commitment_secret_from_seed: small clean-up 2018-06-26 19:30:08 +02:00
Janus
8fe28bae03 fix derive_secret 2018-06-26 19:30:08 +02:00
SomberNight
2897ea9870 get_per_commitment_secret_from_seed (not working yet) 2018-06-26 19:30:08 +02:00
Janus
35cba497f4 lnbase: avoid race while waiting for funding_locked, wait for un-reversed hash 2018-06-26 19:30:08 +02:00
Janus
22e86d89e5 complete bolt11 port to ecdsa instead of secp256k1 2018-06-26 19:30:08 +02:00
SomberNight
205ee0019a channel_establishment_flow: wait for confirmations of funding txn 2018-06-26 19:30:08 +02:00