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
ThomasV
1aac0835d4
add processing flow for funding_locked
2018-06-26 19:30:08 +02:00
ThomasV
0c5a65285c
lnbase: fix parameters to make_commitment in htlc test
2018-06-26 19:30:08 +02:00
SomberNight
58c5cd3e0d
transaction.py: shortcut witness/scriptSig serialisation
2018-06-26 19:30:08 +02:00
Janus
22eeda2b84
lnbase: add some comments
2018-06-26 19:30:08 +02:00
SomberNight
2f684d99b1
constants.py: Simnet inherits from Testnet
2018-06-26 19:30:08 +02:00
Janus
0e9f18adfc
use same servers for simnet as for regtest
2018-06-26 19:30:08 +02:00
Janus
3cdf10c7bf
lightning-hub: update rpc stubs, do not ignore them in gitignore
2018-06-26 19:30:08 +02:00
ThomasV
0b8add104b
lnbase: fix initial commitment transaction
2018-06-26 19:30:08 +02:00
SomberNight
2d3387b24e
refactor storage of channels, path finding
2018-06-26 19:30:08 +02:00
Janus
9c38e42a7d
avoid duplicating bech32 module
2018-06-26 19:30:08 +02:00
Janus
355b526db9
lnbase: more work on make_htlc_tx
2018-06-26 19:30:08 +02:00
Janus
0da15f6dff
lnbase: make_htlc_tx
2018-06-26 19:30:08 +02:00
ThomasV
bd90f8b77e
fix: use remote_per_commitment_point
2018-06-26 19:30:08 +02:00
ThomasV
f5d9f79e65
lnbase: derive blinded pubkey
2018-06-26 19:30:08 +02:00
ThomasV
c0b624e73a
lnbase: fix variable name
2018-06-26 19:30:08 +02:00
ThomasV
7471c60f2f
lnbase: add privkey derivation
2018-06-26 19:30:08 +02:00
ThomasV
5d2be9edab
add test for key derivation
2018-06-26 19:30:08 +02:00
ThomasV
06e52b0b63
lnbase: key derivation (WIP)
2018-06-26 19:30:08 +02:00
Janus
14ee54fb51
lnbase: test signing of first htlc test case
2018-06-26 19:30:08 +02:00
Janus
87c0ff4654
lnbase: make_received_htlc
2018-06-26 19:30:08 +02:00
ThomasV
65c0ee5f4b
fix hash in make_offered_htlc
2018-06-26 19:30:07 +02:00
ThomasV
1082232136
cleanup lnbase tests
2018-06-26 19:30:07 +02:00
Janus
baacbe456a
lightning-hub: remove path hack, use relative imports
2018-06-26 19:30:07 +02:00
SomberNight
620e8d60aa
naive route finding
2018-06-26 19:30:07 +02:00
Janus
6f63672550
lnbase: offered htlc script construction
2018-06-26 19:30:07 +02:00
ThomasV
d94115ab80
use acceptable variable names
2018-06-26 19:30:07 +02:00
ThomasV
d34c902776
lightning: separate testing from main code
2018-06-26 19:30:07 +02:00
ThomasV
945877a5e1
lightning: store network view
2018-06-26 19:30:07 +02:00
ThomasV
354f75592e
lnbase: parse ipv6, fix transport bug
2018-06-26 19:30:07 +02:00
ThomasV
bf4adbde88
lnbase: fix read_message, reduce verbosity
2018-06-26 19:30:07 +02:00
ThomasV
c95a20c701
lnbase: implement key rotation, request initial sync in localfeatures
2018-06-26 19:30:07 +02:00
ThomasV
530d4b5e58
lnbase: verify signature in node_announcement
2018-06-26 19:30:07 +02:00
SomberNight
a3eb4f8e17
bitcoin.py: implement add_number_to_script. fix CSV arg in make_commitment.
2018-06-26 19:30:07 +02:00
ThomasV
ff0cf94330
lnbase: fix test
2018-06-26 19:30:07 +02:00
SomberNight
b04cabe0ef
implement script_num_to_hex. fix encoding of argument for CSV in make_commitment
2018-06-26 19:30:07 +02:00
SomberNight
d4b4d1113d
fixes for make_commitment, but still incorrect destination address (csv arg?)
2018-06-26 19:30:07 +02:00
ThomasV
64726fbb26
lnbase: fix tx amounts
2018-06-26 19:30:07 +02:00
Janus
ff4b9be3af
lightning-hub: include ln relative to current directory
2018-06-26 19:30:07 +02:00
Janus
f7742dbf3c
lnbase_test: add first commitment tx with 5 htlcs test
2018-06-26 19:30:07 +02:00
ThomasV
2f9a71a7ed
lnbase: fix locktime and nsequence
2018-06-26 19:30:07 +02:00
Janus
7f96a60a03
lnbase_test: insert remote_signature and compare fields independently
2018-06-26 19:30:07 +02:00
ThomasV
690c92a54a
lnbase: create unit test for commitment tx
2018-06-26 19:30:07 +02:00
Janus
9e013d4ce0
network: stop loop on loop thread
2018-06-26 19:29:39 +02:00
ThomasV
24b619edee
lnbase: fix signature index
2018-06-26 19:29:39 +02:00
ThomasV
efe6450444
lnbase: initial commitment transaction
2018-06-26 19:29:39 +02:00
ThomasV
f8d868e89a
lnbase: fix funding address, funding_output_index
2018-06-26 19:28:29 +02:00
ThomasV
812e9fcca6
follow up 1aac9e59ed957898fceef99b29b9cc17d7843569
2018-06-26 19:28:29 +02:00
ThomasV
17a9c8e417
lnbase: communication privkey belongs to peer
2018-06-26 19:28:29 +02:00
Janus
2dc8f5efe8
lightning: fix hub backend loop availability
2018-06-26 19:28:29 +02:00
Janus
ed7961c0ce
lnbase: more parts of channel establishment
2018-06-26 19:28:29 +02:00
Janus
ce5ae70d20
lnbase: remove unnecessary try/except
2018-06-26 19:28:29 +02:00
Janus
dc934ce9e5
lnbase: lnbase_test must use threadsafe task submission
2018-06-26 19:28:29 +02:00
ThomasV
9a2fba81e7
lnbase: decorator that handles exceptions
2018-06-26 19:28:29 +02:00
Janus
d45a6a5069
lnbase: fix shutdown when lnbase has exception in main_loop
2018-06-26 19:28:29 +02:00
Janus
89850de99b
lnbase: print exceptions from main_loop
2018-06-26 19:28:29 +02:00
Janus
470d6071ea
lnbase: initialize loop variable in main
2018-06-26 19:28:29 +02:00
Janus
6b044bf2ae
network: do not acquire lightninglock for lnbase
2018-06-26 19:28:29 +02:00
Janus
5e0def63c6
lnbase: add lnbase_test
2018-06-26 19:28:29 +02:00
ThomasV
37d73c3165
lnbase: expose wallet object in LNWorker
2018-06-26 19:28:29 +02:00
Janus
51a31051bd
lnbase: merge initialize and main_loop
2018-06-26 19:28:29 +02:00
Janus
7fb777828a
lnbase: handle error during channel establishment
2018-06-26 19:28:29 +02:00
Janus
abe436fa9a
lnbase: channel establishment flow, avoid using Wallet instance
2018-06-26 19:28:29 +02:00
ThomasV
3869463f62
lnbase: use relative imports
2018-06-26 19:28:29 +02:00
Janus
2b6c550aee
lnbase: support simnet/testnet, create accepted open_channel message
2018-06-26 19:28:29 +02:00
Janus
09141f6767
lnbase: use valid pubkeys in open_channel
2018-06-26 19:28:29 +02:00
Janus
29b8ba95c9
lnbase: try sending open_channel
2018-06-26 19:28:29 +02:00
ThomasV
4836aefbe8
lnbase: add draft handlers
2018-06-26 19:28:29 +02:00
Janus
d2493457ac
lnbase: avoid reimplementing int.to_bytes
2018-06-26 19:28:29 +02:00
Janus
27132ec4dd
lnbase: avoid reimplementing int.from_bytes
2018-06-26 19:28:29 +02:00
ThomasV
48dae8fadf
fix asyncio loop
2018-06-26 19:28:29 +02:00
Janus
a8320ef6f5
lnbase: do not catch all exceptions, tolerate calculations with variables from kwargs
2018-06-26 19:28:29 +02:00
ThomasV
c4d20e0ce8
integrate lnbase with network
2018-06-26 19:28:29 +02:00
ThomasV
411f188daf
lnbase: process ping messages
2018-06-26 19:28:29 +02:00
ThomasV
ca532df193
lnbase: create main loop
2018-06-26 19:28:29 +02:00
ThomasV
c5fdf0d8ba
lnbase: save buffer for next read
2018-06-26 19:28:29 +02:00
ThomasV
35fb996a8a
lnbase: Peer class
2018-06-26 19:28:29 +02:00
ThomasV
339b1778f7
lnbase: fix json loading and indentation
2018-06-26 19:28:29 +02:00
Janus
9a343e0cd2
lightning: do not list python files as resources, use lightning spec generated serialization
2018-06-26 19:28:29 +02:00
ThomasV
26c09a84e4
lightning network base
2018-06-26 19:28:29 +02:00
Janus
2a26544bb4
lightning: qt channel dialog, fix for shutdown when lightning disabled
2018-06-26 19:28:29 +02:00
Janus
1a04eb3ae4
kivy: paste test seed using xclip, lightning: do not catch BaseException unnecessarily, fix clearSubscribers, detect passworded wallet correctly
2018-06-26 19:28:29 +02:00
ThomasV
bbb9911904
simplify parameters, add lndhost to config
2018-06-26 19:28:29 +02:00
Janus
18aaf674c3
lightning: add --simnet and --lightning switches
2018-06-26 19:28:29 +02:00
Janus
6f4ac2779b
lightning: assert result type, add invoice qr dialog
2018-06-26 19:27:04 +02:00
Janus
b0fdec3d6d
lightning: kivy: open channel button in invoice
2018-06-26 19:27:04 +02:00
Janus
81ab10d6e2
lightning: python3.5 compat
2018-06-26 19:26:38 +02:00
Janus
54bf3c2bc9
lightning: add missing import, set console to none initially
2018-06-26 19:26:38 +02:00
Janus
c9f7c4026f
lightning: do not require lock for broadcast tx, it is thread-safe
2018-06-26 19:26:38 +02:00
Janus
8601e7cb7e
lightning: save key derivation point
2018-06-26 19:26:38 +02:00
Janus
727b04ffa2
lightning: separate thread for publish transaction
2018-06-26 19:26:38 +02:00
Janus
6a3118c42f
lightning: use queueing lock
2018-06-26 19:26:38 +02:00
Janus
f5e3da3e56
lightning: less junk on console, quicker shutdown
2018-06-26 19:26:38 +02:00
Janus
155f62f7d4
lightning: don't receive too much data, workaround by reading byte by byte
2018-06-26 19:26:38 +02:00
Janus
a10365e6de
lightning: fix syntax
2018-06-26 19:26:38 +02:00
Janus
fdd47454f3
lightning: complete moving of lightning objects, acquire net/wallet lock while answering lightning requests
2018-06-26 19:26:07 +02:00
Janus
6fe733a8f9
lightning: misc patches, launch asyncio loop on separate thread
2018-06-26 19:24:26 +02:00
Janus
a9444e02a9
lightning: march 2018 rebase, without integration
2018-06-26 19:24:26 +02:00
ThomasV
f24a449d37
Merge pull request #4463 from maschwanden/master
...
Daemon: Fix preflight CORS request handling
2018-06-26 17:09:13 +02:00
SomberNight
4dcefa7d3b
network: fix fork detection in certain backward search cases
...
if there are no checkpoints and the split is very old, the exponential backward search might undershoot so that it asks for the genesis block but 0 and None are not distinguished hence the fork detection logic fails
2018-06-26 16:56:30 +02:00
ThomasV
5a5502303f
make add_signature_to_txin an instance method
2018-06-26 13:09:02 +02:00
Mathias Aschwanden
f6a17b2f5e
Daemon: Fix preflight CORS request handling
2018-06-26 12:08:16 +02:00
ThomasV
cb6989cea6
simplify display of inputs/outpputs in CLI history
2018-06-25 22:49:11 +02:00
SomberNight
6d63140c61
initial changelog for 3.2.0
2018-06-25 17:52:07 +02:00
SomberNight
9a8183f348
network: avoid infinite loop if server headers conflict with checkpoints and server height is above max checkpoint
2018-06-25 11:53:31 +02:00
SomberNight
51ed8a998c
fix: network.interface can become None at any time
2018-06-25 01:14:49 +02:00
SomberNight
f8dab46a4b
kivy: fix fork detection gui
2018-06-25 01:02:21 +02:00
JeremyRand
d1d92e8704
Move BIP44 coin type to net constants.
2018-06-23 14:46:44 +00:00
SomberNight
5f050aa13e
follow-up prev
2018-06-22 18:32:01 +02:00
SomberNight
5220451b73
fix #4457
2018-06-22 18:01:55 +02:00
Janus Troelsen
4f85615734
add simnet support ( #4455 )
2018-06-22 17:07:07 +02:00
ThomasV
a141c69b25
Merge pull request #4313 from toxeus/master
...
electrum: cleanup plugin imports
2018-06-22 15:19:17 +02:00
ThomasV
24818c14ca
Merge pull request #3762 from SomberNight/txin_type_address_segwit
...
change partial txn serialization format for imported addresses txins
2018-06-22 13:58:15 +02:00
SomberNight
174d14ba89
add comment to guess_txintype_from_address
2018-06-22 13:57:06 +02:00
SomberNight
cd41a451f6
locks in network.py
2018-06-21 21:55:32 +02:00
SomberNight
ae786cafdf
(minor) don't raise BaseException
2018-06-20 18:13:43 +02:00
ghost43
61a9deaa61
Check SPV proof inner nodes not to be valid transactions. ( #4436 )
2018-06-20 18:09:38 +02:00
ghost43
7797af6ffa
Qt: show WIF help in import(x2) and sweep dialogs ( #4425 )
2018-06-20 15:58:37 +02:00
SomberNight
ecf6ace975
follow-up #4442
2018-06-19 19:26:13 +02:00
Francisco J. Hernandez Heras
469565c188
Improving imports ( #4448 )
2018-06-19 18:36:01 +02:00
ThomasV
a4da04110e
Merge pull request #4442 from SomberNight/bip32_fix_invalid_ecpoint
...
handle bip32 edge cases
2018-06-19 16:07:42 +02:00
SomberNight
0b72803dd4
fix #4319
2018-06-18 20:30:05 +02:00
SomberNight
170f41f50d
tests: sweeping p2pk
2018-06-18 20:06:17 +02:00
SomberNight
b9d690d64f
handle bip32 edge cases
2018-06-16 17:41:41 +02:00
SomberNight
ad7f8f2cbe
wallet.py: fix balance/history for duplicate addresses
...
in a hd wallet, having duplicate addresses is extremely unlikely, but if it happened, previously an incorrect balance was calculated
2018-06-16 16:38:34 +02:00
SomberNight
59c1d03f01
ecc.py: properly handle point at infinity
2018-06-16 06:34:03 +02:00
SomberNight
1a8e8bc047
bitcoin.py: make int_to_hex throw on overflow
2018-06-16 02:34:27 +02:00
ghost43
a98e833897
getfeerate command: add optional parameters to specify custom fee level ( #4264 )
2018-06-15 17:02:44 +02:00
SomberNight
2cc15fca57
tests: add missing txid test from #3316
2018-06-15 15:39:09 +02:00
ghost43
cc05c09d6b
minikeys: import with uncompressed pubkey instead of compressed ( #4384 )
2018-06-15 15:32:00 +02:00
SomberNight
6297996d12
tests: (tx signing) offline hd multisig, online address
2018-06-15 15:07:56 +02:00
SomberNight
46fdbbbce5
change partial txn serialization format for imported addresses txins
...
offline signing with segwit WIF keys now works.
offline seed + online address signing now works.
2018-06-15 14:08:20 +02:00
SomberNight
d150f0dfc0
tests: rbf and cpfp
2018-06-15 14:05:30 +02:00
SomberNight
6298e9b458
in Qt send tab, detect invalid multi-line payto when using "!": "insufficient funds"
...
if the rest of the amounts (without the "!") are over the available funds; do the correct thing
2018-06-14 23:34:14 +02:00
SomberNight
36ddb68384
synchronizer.py: fix bug where synchronizer would get stuck in case of weird server behaviour
...
there was some kind of re-org but our reorged transactions did not get into the server's mempool for some reason (and they were not mined either). the synchronizer detected the change in address status and asked for the new address histories but in `on_address_history` it thought it did not ask for the histories.
from log:
[Synchronizer] receiving history (unsolicited) 2N6DydVfmheVM9F94G46pcUi5piyffgNBQ9 0
[Synchronizer] receiving history (unsolicited) 2Mw6LDQUzmmxCX3wouDXo2Pj4wbonJATays 0
[SPV] received an error: {'jsonrpc': '2.0', 'error': {'code': 1, 'message': 'tx hash f7c89eec3454b627dcb8cfc822202a0d1f8b38f2a53db182b607a2f61e6946d1 not in block 000000007ac4e95633a16232bea35bc17edf855e3964dff0ebb108b5887647ff at height 1,325,443'}, 'id': 120, 'method': 'blockchain.transaction.get_merkle', 'params': ['f7c89eec3454b627dcb8cfc822202a0d1f8b38f2a53db182b607a2f61e6946d1', 1325443]}
2018-06-14 23:31:19 +02:00
SomberNight
9365b0f924
RBF: better exception handling
2018-06-14 22:36:54 +02:00
SomberNight
1b834a7a78
fix RBF
2018-06-14 22:19:06 +02:00
SomberNight
8f7a4cf876
follow-up 0438bbc2c2
...
the previous was quadratic in len(tx.inputs())
2018-06-14 21:46:03 +02:00
SomberNight
7ebff5616e
ecc.py: _MyVerifyingKey.from_signature is raising low level exception
...
Traceback (most recent call last):
File "...\electrum\gui\qt\util.py", line 645, in run
result = task.task()
File "...\electrum\lib\wallet.py", line 1500, in sign_transaction
k.sign_transaction(tx, password)
File "...\electrum\plugins\keepkey\keepkey.py", line 67, in sign_transaction
self.plugin.sign_transaction(self, tx, prev_tx, xpub_path)
File "...\electrum\plugins\keepkey\keepkey.py", line 263, in sign_transaction
tx.update_signatures(signatures)
File "...\electrum\lib\transaction.py", line 667, in update_signatures
public_key = ecc.ECPubkey.from_sig_string(sig_string, recid, pre_hash)
File "...\electrum\lib\ecc.py", line 180, in from_sig_string
ecdsa_verifying_key = _MyVerifyingKey.from_signature(sig_string, recid, msg_hash, curve=SECP256k1)
File "...\electrum\lib\ecc.py", line 152, in from_signature
Q = inv_r * ( s * R + minus_e * G )
File "...\Python\Python36-32\lib\site-packages\ecdsa\ellipticcurve.py", line 143, in __rmul__
return self * other
File "...\electrum\lib\ecc_fast.py", line 120, in mul
public_pair_bytes = b'\4' + self.x().to_bytes(32, byteorder="big") + self.y().to_bytes(32, byteorder="big")
OverflowError: int too big to convert
2018-06-14 20:14:38 +02:00
SomberNight
0438bbc2c2
transaction.py: change update_signatures API. fix trezor segwit signing.
...
Traceback (most recent call last):
File "...\electrum\lib\transaction.py", line 498, in parse_witness
if txin['witness_version'] != 0:
KeyError: 'witness_version'
2018-06-14 20:13:04 +02:00
SomberNight
05e5ef16eb
transaction.py: more flexible sign() method
...
handles both x_pubkeys and pubkeys in keypairs
2018-06-14 15:11:20 +02:00