1
0
Fork 0
mirror of https://github.com/ACINQ/eclair.git synced 2025-02-24 06:47:46 +01:00
Commit graph

1002 commits

Author SHA1 Message Date
Fabrice Drouin
4b7cae47ff Sphinx: fix version byte (#161)
we were using version=1, it should be 0 instead (see BOLT 04)
2017-09-12 14:49:12 +02:00
Fabrice Drouin
a8b97d9c05 SPV watcher: set a timestamp on watched script (#160)
this way we don't disable checkpoint optimizations.
2017-09-11 18:40:57 +02:00
Pierre-Marie Padiou
7b2303af80 Now requiring spv nodes to be Segwit-compatible (#159)
* now requiring spv nodes to be 0.13+
* properly setting bitcoinj Context
* disconnect peers which do not provide witness data
* waiting for bitcoinj to be initialized before going further in the setup
2017-09-08 18:06:59 +02:00
Pierre-Marie Padiou
e478f77e5a Replaced sqlite result iterators by lists (#158)
This is less performant but our ResultSet->Iterator implementation
was buggy due to java/scala iterators requiring look-ahead capabilities
when iterating over the result, which ResultSet does not support.

This is a quick fix in the meantime.
2017-09-08 14:43:43 +02:00
Pierre-Marie Padiou
ebe93538ca Better handling of connection lifecycle in Peer (#155)
* better handling of connection lifecycle in Peer
* replaced `StateTimeout` by scheduled message for channel termination
2017-09-08 14:32:28 +02:00
Pierre-Marie Padiou
93739eb3f1 Temporarily exclude channels from routes (#154)
When a node return a `TemporaryChannelFailure` for its outgoing
channel, along with an unchanged `ChannelUpdate`, we temporarily
exclude this channel from route calculation.

Note that the exclusion is directed, as we expect this will mostly
happen when all funds are on one side of the channel.

The duration of the exclusion can be configured by setting the
key `eclair.channel-exclude-duration`. Default value is 60s.
2017-09-08 13:52:17 +02:00
dpad85
c24b9f0c22 (gui) Remove the millisatoshis part from milli-bitcoin amounts (#153)
* (gui) Added localized decimal patterns for amounts
* balance and capacity in channel pane are formatted with the milliBTC pattern
* (gui) using vm default locale is fine with DecimalFormat
2017-09-07 17:27:48 +02:00
Pierre-Marie Padiou
c94cb13dd3 Add an experimental SPV mode with bitcoinj (#152) 2017-09-07 17:20:36 +02:00
Fabrice Drouin
1d29d28a2a Fix byte order of chain hash (#151)
* fix order of chain hash (see https://github.com/lightningnetwork/lightning-rfc/issues/237)
* use known chain hashes instead of querying bitcoind
2017-09-06 17:29:39 +02:00
Fabrice Drouin
a066e0d042 Switch to java environment variables instead of command line options (#149)
* added an eclair.printToconsole is defined log to stdout
* datadir is now eclair.datadir if defined, or user.home/.eclair
* update README.md
2017-08-30 13:42:58 +02:00
Pierre-Marie Padiou
a1509673a6 Use Sqlite as local database (#143)
* network announcements are now stored in sqlite
* store channels and peers in sqlite
* added tests to peers and channels db
2017-08-29 15:35:28 +02:00
dpad85
45a3993e7a Added a compatibility check with DB files when booting application (#148) 2017-08-28 16:37:44 +02:00
Fabrice Drouin
9a736e2396 Add chain hash to gossip messages, increase max error message size (#145)
see rfc PR 203 and 227
2017-08-28 14:42:44 +02:00
Pierre-Marie Padiou
edab8b004a Use logback's MDC to display channelId in logs (#142) 2017-08-25 16:30:00 +02:00
Anton Kumaigorodski
4cd081c11c Add API method to accept requests with custom amount (closes #134) (#135)
* Add API method to accept requests with custom amount
- can be used to send up to 2x higher amount than requested according to BOLT11
- should be used for payment requests without amounts
* Refactor 'send' method in API
* Add comments and description for 'send' API method
2017-08-25 13:38:14 +02:00
Michael
76f744c57c Replace getinfo with getnetworkinfo (#131) 2017-08-24 11:15:13 +02:00
dpad85
305420bd37 Renamed javafx module to eclair-node-gui and updated binaries name (#137)
* Renamed eclair-node-javafx module to eclair-node-gui

* (build) javafx installer uses project version

* (build) Streamlined capsule names

* (build) mvn generates installer only with `installer` profile. The windows installer does not need to be created in common cases. Decreases `eclair-node-gui` module building time by ~ 1 min

* (readme) updated the `run eclair` commands with the new capsule names
2017-08-23 19:28:18 +02:00
Fabrice Drouin
012d804474 Fix node announcement encoding (closes #124) (#136) 2017-08-23 16:58:05 +02:00
Pierre-Marie Padiou
00aef5c438 Updated bitcoin-lib to 0.9.13 (closes #110) (#132) 2017-08-23 14:16:06 +02:00
dpad85
7acb75d50c (API) Added a method to return all known channels (closes #126) (#133)
* Added an 'allchannels' call that returns local and non-local channels
* Added API calls `allchannels` and `allnodes` to documentation
2017-08-23 14:14:33 +02:00
Pierre-Marie Padiou
43d6c80f9e Bugfix: regression in init (#120)
Eclair wasn't stopping anymore when two instances were started with the
same ports.

Note: we should probably go one step further and put a lock in the datadir
directory. For now we just check if the main TCP port is in use and fail fast.
2017-08-23 12:13:18 +02:00
Fabrice Drouin
f2560e2c9c Reorder features fields to match the BOLTS (#127)
see spec change a257554456cda98afd1532c302c0e5e84de0455e
2017-08-23 11:29:46 +02:00
dpad85
3e81fce898 (gui) Fix direction icons in the list of the known channels in network (#119)
* (gui) channel direction is built from current item state

* using an objectproperty binding with the cell value instead of a string so
  that we can directly access the state within the factory

* (gui) Using option for direction boolean instead of dedicated state

* Tell explicitly in readme that `eclair.conf` must be manually created (#129)

* also added an explicit link to the binaries
* fix #125
2017-08-17 13:04:43 +02:00
Pierre-Marie Padiou
d0a18c0649 improved reconnection logic and fuzzy tests (#123)
Most notably, we do not anymore discard previously signed updates.
Instead, we re-send them and re-send the exact same signature. For that to
work, we had to be careful to re-send rev/sig in the same order, because
that impacts whatever is signed.

NB: this breaks storage serialization backward compatibility
2017-08-10 16:24:05 +02:00
Pierre-Marie Padiou
0440096f95 Clarified node/node-javafx distinction in README 2017-07-26 19:11:44 +02:00
Pierre-Marie Padiou
c6dc33e8bf Bugfixes and minor improvements (#117)
* reworked payment lifecycle

* fixed retry logic (infinite loop in some cases)
* check update signature
* keep track of the list of errors and routes tried

* added support for sending bolt11 payment request in the API

* updated eclair-cli and deleted deprecated TESTING.md (closes #112)

* removed useless application.conf in eclair-node

* now handling CMD_CLOSE in shutdown/negotiating/closing states

* added no-op handlers for FundingLocked and CurrentFeeRate messages

* cleaning up stale announcements on restart

* more informative/less spam logs in Channel

* (gui) Wrapping payment events to display date of event

* Also added controls to item content in cell factory overrides. This
  should prevent prevent duplicates as reported in #115
2017-07-26 18:57:31 +02:00
Pierre-Marie Padiou
f321d3e4ec Fixed links in README 2017-07-23 17:11:08 +02:00
rem0g
75ef04ac23 API: Add description to receive in help menu (#114) 2017-07-22 18:16:17 +02:00
rem0g
f51be77ab1 Update README with description to receive method (closed #111) (#113)
Description is mandatory when using receive as method to generate payment request.
2017-07-22 18:14:52 +02:00
sstone
905aebebbd set version back to 0.2-SNAPSHOT 2017-07-19 17:15:04 +02:00
sstone
c85823f5b4 set version to 0.2-alpha4 2017-07-19 17:12:21 +02:00
sstone
ecce374e1b use bitcoin-lib 0.9.12 2017-07-19 16:33:19 +02:00
sstone
ec1cd2b9ff make sure we sign data that is 32 bytes long, with valid private keys 2017-07-19 16:32:10 +02:00
Pierre-Marie Padiou
8c00efb9b6 Parse max_htlc_value_in_flight_msat as an unsigned long (closes #103) (#109)
* handle overflow for field 'max-htlc-value-in-flight'
* moved serialization of uint64 to codecs class
* moved constraint check
* fix configuration (was using hard coded values)
* using UInt64.MaxValue in test constants
* added a default handler for 'ok' messages in Channel
2017-07-17 19:36:49 +02:00
Pierre-Marie Padiou
5c53bf5f4d Reproduced and fixed issue with different dust limits (closes #97) (#108) 2017-07-17 19:18:27 +02:00
Pierre-Marie Padiou
1c3b1bfed5 Added support for multiple external ip in node announcements (#106)
* supported (possibly empty) list of external ips
* fixed new conf value for integration tests
2017-07-17 15:41:46 +02:00
Pierre-Marie Padiou
7d669630ca Simplified computation of closing fee (#107) 2017-07-17 15:11:31 +02:00
Pierre-Marie Padiou
073705a957 Implement state-counter retransmission (#105) 2017-07-17 14:28:07 +02:00
Fabrice Drouin
21d1d7c667 Fix update_add_htlc encoding (#104)
* update_add_htlc wire message: swap expiry and payment hash fields
see BOLT 2

* fix accept_channel wire encoding
'min depth' and 'hlc min msat' fields we swapped

* gui: set ip to "unknown" when it has not been set in node announcements
2017-07-12 20:05:51 +02:00
Pierre-Marie Padiou
e7833055bd Added support for BOLT 11 payment request (#102)
* implement BOLT 11 (payment request)
* (javafx) Added QR Code in receive payment modal, using zxing to generate QR code
2017-07-12 20:03:41 +02:00
Fabrice Drouin
7427cdb27b Interpret feature bits as per rfc PR 156-169-178 (#101) 2017-07-11 17:41:14 +02:00
Fabrice Drouin
83238b6299 Use 8 bytes for msat amounts (#99)
(see RFC PR 175)
2017-06-27 10:48:56 +02:00
Pierre-Marie Padiou
53243b5e74 Use an exponential backoff timeout for connection retry (#96)
* reduced logging for Reconnect events
* peer is now able to switch transports, in case of undetected disconnection
* now using an exponential backoff retry when reconnecting to peers
* put the arguments of the 'open' http method in the same order as the uri
2017-06-27 10:47:35 +02:00
Fabrice Drouin
12c90a7efe api: add a simple getinfo method (closes #98) (#100)
* api: add a simple getinfo method returning node id, node alias, port, chain hash and current block height
* api: add short description of getinfo [ci skip]
2017-06-27 10:46:30 +02:00
Fabrice Drouin
c0ad616a32 Upgrade to bitcoin-lib 0.9.11 (#95)
we now use spongycastle instead of bouncycastle
2017-06-09 17:39:03 +02:00
Pierre-Marie Padiou
582c327e04 Minor tweaks (#94)
* using scodec BitVector for interpretation of features
* datadir is now a file instead of a string
* (minor) made option mapping more explicit
2017-06-08 18:47:59 +02:00
Pierre-Marie Padiou
1a81ab1945 Replaced java serialization by scodec (#92) 2017-06-08 15:21:07 +02:00
Pierre-Marie Padiou
d86dd72d78 Separate code into modules (#91) (closes #88) 2017-06-06 18:37:34 +02:00
Pierre-Marie Padiou
7f747d55fd Added support for channel_disabled flag and updated failure codes (#90)
* added support for 'disable' flag in announcements (see lightningnetwork/lightning-rfc/pull/143)
* now responding TemporaryChannelFailure errors to CMD_ADD_HTLC in OFFLINE
* added helper methods for interpreting ChannelAnnouncement flags
* (gui) added image depicting flags of announcement in channels table
* implemented all failures as per lightningnetwork/lightning-rfc/pull/167
* router: don't use channels that have been announced as disabled
2017-06-02 20:14:21 +02:00
pm47
6297054a79 added validation checks on payment hash 2017-05-16 14:57:52 +02:00