Commit Graph

5767 Commits

Author SHA1 Message Date
Johan T. Halseth
e84bd29836
autopilot/agent: add weightedChoice and chooseN algorithm
The algorithms will be used to select nodes at random from the weighted
distribution set by the node's scores given by the heuristic.
2018-12-06 14:26:05 +01:00
Johan T. Halseth
be45697c6d
autopilot/prefattach_test: use NodeScores API for prefAttach tests
This commit converts the existing unit tests of Select into tests of
NodeScores.
2018-12-06 14:26:05 +01:00
Johan T. Halseth
5e8e54083f
autopilot/prefattach+interface: add API NodeScores
This commit adds a new method NodeScores to the AttachementHeuristic
interface. Its intended use is to score a set of nodes according to
their preference as channel counterparties.

The PrefAttach heuristic gets a NodeScores method that will score the
ndoes according to their number of already existing channels, similar to
what is done already in Select.
2018-12-06 14:26:05 +01:00
Johan T. Halseth
5ecc209c41
autopilot/interface+agent: remove NodeKey from AttachmentDirective
Instead parse the pubkey bytes only when needed.
2018-12-06 14:26:05 +01:00
Johan T. Halseth
89c3c5319f
autopilot/agent: split opening logic into own method
This commit takes the logic after the autopilot agent has decided that it
needs to open more channels, and moves it into a new method openChan.
2018-12-06 14:26:03 +01:00
Johan T. Halseth
26810fe928
autopilot/agent: split attachement directive attempts into method 2018-12-06 14:25:22 +01:00
Johan T. Halseth
fb10175ea5
autopilot/agent: add maps to agent struct
This commit moves the maps used by the controller loop to the Agent
struct, in preparation for breaking it up into smaller parts.
2018-12-06 14:24:18 +01:00
Johan T. Halseth
86e6d230f2
autopilot/agent: add attachment directive goroutine to wait group 2018-12-06 14:24:15 +01:00
Johan T. Halseth
35f4ec84d1
autopilot/prefattach: use HeuristicConstraints
This commit makes the pref attach heuristic and the agent use the
HeuristicConstraints internally.
2018-12-06 11:25:30 +01:00
Johan T. Halseth
e98d859882
autopilot: define HeuristicConstraints
This commit defines a new struct HeuristicConstraints that will be used
to keep track of the initial constraints the autopilot agent needs to
adhere to. This is currently done in the ConstrainedPrefAttachement
heuristic itself, but this lets us share these constraints and common
method netween several heuristics.
2018-12-06 11:20:09 +01:00
Olaoluwa Osuntokun
45f49899ae
Merge pull request #2243 from joostjager/prune-single-direction
routing: prune single direction
2018-12-05 21:22:49 -08:00
Olaoluwa Osuntokun
1d1e9f2c44
Merge pull request #2030 from halseth/authsig-len
Validate own node announcement, signature length
2018-12-05 21:08:46 -08:00
Joost Jager
3ed16837e4
routing: prune channels unidirectional
In this commit we introduce pruning of channel edges instead of channels.
Channel failures apply to a single direction and it is unnecessarily
restricting to prune both directions.
2018-12-05 14:39:23 +01:00
Joost Jager
8b8e82a171
routing: remove route hop maps
Hop maps were used in a test to verify the population of the hop map
itself and further only in a single function (getFailedChannelID).
Rewrote that function and removed the hop maps completely.
2018-12-05 14:39:23 +01:00
Johan T. Halseth
3d7bbd6d72
channeldb/graph: write max 80 sig len for nodes 2018-12-05 09:31:26 +01:00
Johan T. Halseth
5dcd2a4530
gossiper: validate our own node announement 2018-12-05 09:31:25 +01:00
Joost Jager
42debc6c12
routing: fix node ordering in test graph
There is the general assumption that channel edge policy nodes are
ordered such that the node1 pubkey is smaller than the key of node 2. In
the test graph, this assumption didn't hold. This commit fixes the test
graph and also adds a check to prevent this from happening again.
2018-12-05 09:15:27 +01:00
Johan T. Halseth
349551373d
Merge pull request #2257 from yancyribbens/apk-docker-dependencies-fix
docker: fix dockerfile dependency bug
2018-12-05 08:26:53 +01:00
Olaoluwa Osuntokun
810afa937a
Merge pull request #2115 from halseth/disable-bit-decoupling
path finding: Disable bit decoupling
2018-12-04 17:31:08 -08:00
Olaoluwa Osuntokun
b8d6ac8cb2
Merge pull request #2270 from halseth/unit-test-go-sum
[make+mod] fetch correct btcd version
2018-12-04 16:35:08 -08:00
Johan T. Halseth
0ba4fb8605
make: don't hardcode commit date
As it won't correspond to the commit hash, include the whole version
string.
2018-12-04 14:09:33 +01:00
Johan T. Halseth
bafc44c14b
make: get btcd commit hash from go.mod
Since go.sum also contains historical commits, we must fetch currenct
commit hash from go.mod.
2018-12-04 13:50:51 +01:00
Johan T. Halseth
5f8425cb03
routing/pathfind_test: check error before attempting cleanup 2018-12-04 12:20:45 +01:00
Johan T. Halseth
67b018476c
routing/pathfind test: add TestPathSourceEdgesBandwidth
This commit adds a new test that checks that the bandwidth hints are
considered correclty for local channels, and that disable flags are
ignored in this case.
2018-12-04 12:20:45 +01:00
Johan T. Halseth
0b6a19866b
routing/pathfind: pass ignore disable flags for local channels
To decouple our own path finding from the graph state, we don't consider
the disable bit when attempting to use local channels. Instead the
bandwidth hints will be zero for local inactive channels.

We alos modify the unit test to check that the disable flag is ignored
for local edges.
2018-12-04 12:20:45 +01:00
Johan T. Halseth
20b9d5d000
routing: define graphParams and restrictParams
To avoid the findPath parameter list getting out of hand, we define new
structs that wraps the mandatory and optional parameters to findPath.
2018-12-04 12:20:44 +01:00
Olaoluwa Osuntokun
640fe2558b
discovery: update TestReceiveRemoteChannelUpdateFirst due to stricter stale node checks
A recent commit modified the `IsNodeStale` method in the mocks to mirror
the actual implementation in the gossiper. As a result, we now expect
one less node announcement to be broadcast.
2018-12-03 21:04:28 -08:00
Olaoluwa Osuntokun
da973315d4
hltcswitch: use build package to detect debug build 2018-12-03 20:40:12 -08:00
Olaoluwa Osuntokun
127bc71546
Merge pull request #2148 from xsb/rest-endpoints
Add missing REST endpoints for SignMessage and VerifyMessage
2018-12-03 20:14:09 -08:00
Olaoluwa Osuntokun
b4e4f40125
Merge pull request #2128 from mrfelton/fix/queryroutes-default-num-routes
queryroutes: set queryroutes numRoutes param default to 10
2018-12-03 20:12:44 -08:00
Olaoluwa Osuntokun
5ad2592891
Merge pull request #2123 from halseth/node-announcement-no-forward
[Tests] No forwarding of stale node announcements
2018-12-03 20:11:43 -08:00
Offer Markovich
6e8dd9e00f htlcswitch: verify test are running with "debug" tag
Per team decision all tests should run with "debug" flag.
Makefile updated accordingly.

A developer may still run the test from command line by "go test ...."

The commit protects against this and issue an error if needed.
2018-12-03 19:53:36 -08:00
Olaoluwa Osuntokun
92be757223
Merge pull request #2252 from cfromknecht/queue-coverage
queue: Add reliable 100% coverage
2018-12-03 19:25:24 -08:00
Olaoluwa Osuntokun
5075394617
Merge pull request #1706 from joostjager/errorprocessing
routing: make routing retry behaviour consistent
2018-12-03 18:29:07 -08:00
Conner Fromknecht
c27b90f76c
queue/queue_test: adds 100% test coverage 2018-12-03 13:58:25 -08:00
Conner Fromknecht
a4442608e6
queue/queue: wait group inner go routines, add idempotency 2018-12-03 13:58:25 -08:00
Olaoluwa Osuntokun
5107feb1ce
Merge pull request #2261 from cfromknecht/makefile-unused-declarations
Makefile: remove unused HAVE_ declarations + cleanup
2018-12-03 13:34:43 -08:00
Joost Jager
b6ce03e569
routing: make routing retry behaviour consistent
Fixes the following issues:
- If the channel update of FailFeeInsufficient contains an invalid channel
  update, it is not possible to properly add to the failed channels set.
- FailAmountBelowMinimum may apply a channel update, but does not retry.
- FailIncorrectCltvExpiry immediately prunes the vertex without
  trying one more time.

In this commit, the logic for all three policy related errors is
aligned.
2018-12-03 13:23:27 +01:00
Brian Sipple
c9a5593a64 build: update make btcd command with GO111MODULE=on 2018-12-02 15:43:26 -08:00
Conner Fromknecht
7557bded50
Makefile: remove unused HAVE_ declarations + cleanup 2018-12-02 15:24:14 -08:00
Yancy Ribbens
bd3e046fb7 fix dockerfile dependency bug 2018-12-01 22:53:14 -06:00
Olaoluwa Osuntokun
f4b6e0b775
Merge pull request #2253 from monaco-ex/pr-fix-build-failure-on-docker-btcd
Fix the build error.
2018-12-01 13:58:23 -08:00
Cryptcoin Junkey
126787074b Fix the build error. 2018-12-01 03:06:38 +00:00
Olaoluwa Osuntokun
ec01bebb81
Merge pull request #1902 from cfromknecht/move-chan-series-to-discovery
Move chan series to discovery
2018-11-30 18:20:09 -08:00
Olaoluwa Osuntokun
7a39131a85
Merge pull request #2249 from cfromknecht/makefile-cleanup
Makefile: use travis targets, remove unnecessary symbols
2018-11-30 16:26:45 -08:00
Conner Fromknecht
ae46d2e716
Merge pull request #2211 from Roasbeef/notifier-reverse-scan
chainntnfs: modify all historical rescans to scan backwards
2018-11-30 16:26:24 -08:00
Conner Fromknecht
da21f33a2a
chan_series: remove chan_series from main 2018-11-30 15:33:34 -08:00
Conner Fromknecht
4e48a56d5e
server: init gossiper w/ discovery.ChanSeries 2018-11-30 15:33:34 -08:00
Conner Fromknecht
5fc0a192ad
discovery/syncer: move CGTimeSerires to chan_series 2018-11-30 15:33:34 -08:00
Conner Fromknecht
1c81a8fad6
discovery/chan_series: copy chan_series to discovery 2018-11-30 15:33:34 -08:00