Jennifer Li Johnson
cefdff535a
Replace list calls with iterates in kademlia routing table ( #1318 )
...
* notes
* adds bool for option to skip self
* wip getKBucketID is still breaking TestAddNode
* fix (#1322 )
* remove panic
* remove iteratebuckets
* implements getKBucketRange
* getNodeIDsWithinKBucket
* removes determineFurthestIDWithinK
* wip
* nodeIsWithinNearestK
* removes bucketIDToKey
* removes extra xor in test
* wip
* rebased
* uses create rt w opts
* lint
* fix lint
2019-02-26 11:07:53 -05:00
Kaloyan Raev
1ec17653d4
Endpoint for local node info ( #1355 )
...
Adds a new `Info` method to the Kademlia endpoint that returns the following local node info:
* ID
* Type
* Metadata (email and wallet)
* Restrictions (free storage and bandwidth)
The new endpoint is exposed as `inspector kad node-info` command too.
2019-02-25 19:41:51 +01:00
Jennifer Li Johnson
b5447c6608
Routing table tests ( #1270 )
...
This PR includes a new package called testrouting, which implements a very algorithmically slow but hopefully easy-to-keep-operationally-correct in-memory routing table. The routing table also supports writing out its current structure as a DOT graph for visualization. testrouting is primarily meant to help in coming up with generic routing table integration tests.
This PR also includes a new routing table integration test suite that runs against all current routing table implementations. Our existing routing table passes a lot of the tests, but not all of them, still debugging why. I have confirmed the tests should pass with the visualization graphs though.
2019-02-22 13:39:29 -05:00
Jennifer Li Johnson
a5aa5f84a1
handle server termination in kademlia tests ( #1323 )
2019-02-19 20:41:32 +02:00
Bill Thorp
c598ed034d
kad.FindNear fix ( #1320 )
...
We realized that the Kademlia FindNear() function was
1. not using XOR distance (AKA _totally broken_)
2. largely a duplicate of the RoutingTable FindNear() function
Changes in this PR:
1. upgraded RoutingTable FindNear() to use iterator and restrictions
2. removed unneeded RoutingTable interface
3. made Kademlia wrap methods that were previously accessed via RoutingTable
4. fixed the tests
2019-02-15 22:23:35 -05:00
JT Olio
2a59679766
pkg/transport: require tls configuration for dialing ( #1286 )
...
* separate TLS options from server options (because we need them for dialing too)
* stop creating transports in multiple places
* ensure that we actually check revocation, whitelists, certificate signing, etc, for all connections.
2019-02-11 13:17:32 +02:00
Egon Elbre
9c1e299f3c
Ensure everyone sees everyone else ( #1275 )
2019-02-08 11:25:13 +02:00
Egon Elbre
fdbe2db273
Remove node package and simplify DHT interface ( #1233 )
2019-02-06 14:37:17 +02:00
Egon Elbre
87d6410b50
Revert "Remove node package and simplify DHT interface."
...
This reverts commit 03ec1ff92d
.
2019-02-05 10:38:48 +02:00
Egon Elbre
03ec1ff92d
Remove node package and simplify DHT interface.
2019-02-05 10:37:24 +02:00
Egon Elbre
97714d150f
Remove unused kademlia.Disconnect method ( #1178 )
2019-01-30 22:57:13 +02:00
Egon Elbre
d5346982c2
Delete provider package ( #1177 )
2019-01-30 22:47:21 +02:00
Egon Elbre
e1a8bbdcb6
Kademlia flags cleanup ( #1137 )
2019-01-29 08:51:07 +02:00
Dylan Lott
bb2588e9ae
Refactors kademlia inspector to use FindNear ( #1157 )
...
* WIP
* update identity paths to get dump-nodes working
* Remove commented out code
* remove comment
* updates from code reviews
* updates linter
2019-01-28 15:53:37 -07:00
Dylan Lott
df903ea215
Decreases refresh time per bucket in Kademlia ( #1150 )
2019-01-28 12:36:20 -07:00
Jennifer Li Johnson
856b98997c
updates copyright 2018 to 2019 ( #1133 )
2019-01-24 15:15:10 -05:00
Egon Elbre
2d00f882a3
Kademlia Dialer ( #1092 )
2019-01-18 10:00:56 -05:00
Egon Elbre
26c2564bd8
pkg/kademlia: simplify code ( #958 )
2019-01-02 20:57:11 +02:00
Jennifer Li Johnson
a2fa5c4c5a
Proper NodeType Handling ( #873 )
...
* adds enums to nodetype
* updating nodetype todos
* ran pb updates
* reorder nodetypes
* adding checks
* wip
* wip
* wip
* bug in test-captplanet
* wip
* add values to storagenode, satellite, captplanet binaries
* Cleanup
* more cleanup
* wip
* lint
* lint
* wip
* fixes bug
* regenerate protos
Change-Id: Id270212e8c7479e52641058042cf23b5317ab773
* limit node type changes to kademlia
Change-Id: I9c1a6cc4a79e05086627f0fdeb5028c62ce754f4
* dpanic
Change-Id: Id952a2ad13c807ebaea0ec0a875405e267d81c3e
* review comments
Change-Id: I7f9b77ef22779dd012fd490375b136014f51f834
2019-01-02 11:47:34 -07:00
Bryan White
249244536a
CSR Service (part 2): cert signing rpc ( #950 )
...
* CSR Service:
+ implement certificate sign rpc method
+ implement certificate signer client/server
+ refactor `AuthorizationDB#Create`
+ refactor `NewTestIdentity`
+ add `AuthorizationDB#Claim`
+ add `Token#Equal`
+ fix `Authorizations#Marshal` when marshaling identities and certificates
+ tweak `Authorization#String` format
+ cert debugging improvements (jsondiff)
+ receive context arg in `NewTestIdentity`
+ misc. fixes
2019-01-02 12:39:17 -05:00
JT Olio
3fbd8c7d15
kademlia: remove a redundant argument ( #951 )
2019-01-02 12:57:06 +02:00
JT Olio
4a0749e44a
Remove farmer references ( #949 )
2019-01-02 12:31:49 +02:00
Bill Thorp
3fa094f3da
Add the ability for Kademlia to do a refresh for each bucket ( #908 )
...
* added random id in range, added refresh
2018-12-20 16:45:06 -05:00
Egon Elbre
d9a13667fc
Use fixed logger for Kademlia and make not being able to connect in discovery debug statement. ( #899 )
2018-12-18 17:13:32 +02:00
Egon Elbre
7a80e7bf2f
Use testplanet in node tests ( #841 )
2018-12-12 17:40:33 +02:00
JT Olio
ceb590fa67
capt: reduce nodes to 10 ( #793 )
...
Change-Id: Ief380fe29e3043657705cd7505c266fd774181a4
2018-12-11 11:40:54 -07:00
JT Olio
1c96db01ba
better database error handling ( #784 )
...
* better database error handling
Change-Id: I28dbd69cf6c2fa268e02405521ff6e6c1a68a702
* missing comments added
* missing comment added
2018-12-07 07:46:42 -07:00
Egon Elbre
1e4556f88a
Fix import groupings ( #739 )
2018-11-30 15:40:13 +02:00
Bryan White
2a0c4e60d2
preparing for use of customtype
gogo extension with NodeID
type ( #693 )
...
* preparing for use of `customtype` gogo extension with `NodeID` type
* review changes
* preparing for use of `customtype` gogo extension with `NodeID` type
* review changes
* wip
* tests passing
* wip fixing tests
* more wip test fixing
* remove NodeIDList from proto files
* linter fixes
* linter fixes
* linter/review fixes
* more freaking linter fixes
* omg just kill me - linterrrrrrrr
* travis linter, i will muder you and your family in your sleep
* goimports everything - burn in hell travis
* goimports update
* go mod tidy
2018-11-29 19:39:27 +01:00
Egon Elbre
0ae05cf834
Ensure that we only choose storage nodes ( #732 )
2018-11-29 16:57:00 +02:00
Maximillian von Briesen
b884ee4626
Update protos to fit style guide (easy review) ( #702 )
...
* fix overlay.proto and piecestore.proto to meet style guide
* update code to be consistent with regenerated protos
2018-11-23 21:46:53 -05:00
Michal Niewrzal
f72832ee69
Add metadata to pb.Node (email and wallet) ( #671 )
...
* Add metadata to pb.Node (email and wallet)
* goimports
* reorganize config
* fix typo
* remove 'foo' id
* add basic test
2018-11-21 16:07:18 +01:00
Bryan White
dabd87cb36
swap golang/protobuf out for gogo/protobuf ( #692 )
...
* swap golang/protobuf out for gogo/protobuf
* revert go.mod and go.sum changes
* linter fixes
2018-11-20 19:29:07 +01:00
Egon Elbre
832317b0ee
Remove unused workers ( #640 )
2018-11-19 17:07:24 +02:00
Dennis Coyle
e4baec8fce
Coyle/tls verify ( #612 )
...
* add nodeID to dial opts
* fix tests to use real identity
2018-11-09 17:08:33 -05:00
Bryan White
57572cdeed
Use sync.Cond
with kademlia workers ( #512 )
...
* wip - have to take a break; crying baby
* linter fixes
* bugfix
* responding to review feedback
* linter fixes?
* linter fixes
* feedback fixes
* feedback fixes
* linter fixes
* linter fixes
* linter fixes
2018-11-01 18:03:46 +01:00
Bryan White
8b9711cb5e
better waitlist-gating ( #557 )
...
* better waitlist-gating
(cherry picked from commit 490fe02b7c3558da18678dfb651c92ec9c4a75b5)
* fix broken test
* linter fixes
* linter fixes
* make extension verification optional
* add certifcate gating script for captplanet
* fixing tests
* linter fixes
* linter fixes?
* moar linter fixes
* Revert "moar linter fixes"
This reverts commit 8139ccbd73cbbead987b7667567844f50f7df2c8.
* just kill me
* refactor
* refactor tests
* liniter...
* cleanup
2018-11-01 16:48:43 +01:00
Egon Elbre
68796d7964
Ensure we can create kademlia with custom storage ( #533 )
2018-10-26 19:54:00 +03:00
Jennifer Li Johnson
8d779d3d3e
Disconnects nodeclient, routing table dbs when done with kademlia ( #507 )
...
* disconnect from nodeclient
* cleanup connections in tests
* kademlia disconnects from nodeclient
* updating disconnect method for mocks
* creates separate disconnect and removeAll methods for tests
* adds init to connection pool
* fix folder cleanup and disconnect
* creates and cleans up test db files and disconnects kad
* removes db/.keep
* includes disconnect within cleanup methods
* creates public init method on connection pool to handle mutex copy issues
* remove all after disconnect
* pair creation and destruction
* checks disconnect error
* remove ctx
* fixes mock kad
2018-10-26 10:07:02 -04:00
Jennifer Li Johnson
d150cf6dde
reassigns test ids to match test pattern ( #488 )
2018-10-16 14:11:39 -04:00
Jennifer Li Johnson
dd525eb978
kademlia get nodes ( #444 )
...
* get nodes
* restrictions with getnodes
* increases limit
* iterates with restrictions
* testgetnodes
* Tests meetsRequirements
* update id creation
2018-10-16 11:22:31 -04:00
Egon Elbre
e39f9e42b4
Kademlia Sequential Lookup ( #464 )
2018-10-12 11:52:32 +03:00
Dylan Lott
f87d295e5a
Kad identity ( #458 )
...
* Removes node.NewID usage from kademlia tests
* Updates more tests
* remove comments
* adds error checking to NewFullIdentity
2018-10-11 15:41:58 -06:00
Egon Elbre
ee5264f5fd
Fix TestBootstrap and TestLookup ( #460 )
...
* Fix TestBootstrap and TestLookup
* Fix typos
2018-10-11 13:01:16 -04:00
Dylan Lott
a69bc65a30
Kad flags ( #443 )
...
* Allows kademlia params to be configured with flags
* Removes commented out code
* updates kad tests to use kadconfig struct
2018-10-09 10:47:05 -06:00
Dennis Coyle
783f055417
create db directory if it does not exist ( #439 )
...
* create db directory if it does not exist
* linter fix
* pass db path in from config
* change mkdir to mkdirAll
* windows love
* PR comments
* changing the path
* change the config default to $CONFDIR/kademlia
2018-10-08 16:37:52 -04:00
Dennis Coyle
dee2c137c8
Remove BKAD dependency from pkg/kademlia ( #294 )
...
* slowly but surely
* hardcode ID for tests so we can get predictable results
* skipping bad test
* removing tests of bkad
* wip
* new algorithm for worker
* clean up
* remove skipped test
* changes
* uncomment
* fixed conflicts
* maybe done ?
* cleanup
* boot bkad
* wip
* cleanup
* undo change
* fixes
* wip
* wip
* moving nodeID around
* wip
* wip
* fixes
* fixes after merge
* added TODO
* fixed tests post identity
* linter fixes
* wip
* PR review comments
* wip
* fixing tests
* fix tests
* force db directory
* bad test
* fixes race condition
* small cleanups
* adding db folder
* testing
* wip
* cleanup
* cleanup
* linters
* export Restrict
* add timeout
* testing
* linters
* forgot one
* moar fixes from master merge
* PR comments
* moar PR comments
* removed stun flag
* remove duplicate declaration
* remove old tests
* remove timeout
* fix tests
* missed one
* changed StringToID >> IDFromString
* PR comments
* stupid linter
* moevd overlay mock
* fixed merge conflicts
* fixes
* linter
2018-10-08 11:09:37 -04:00
Egon Elbre
b6b6111173
Flatten proto definitions into a single package ( #360 )
...
* protos: move streams to pb
* protos: move overlay to pb
* protos: move pointerdb to pb
* protos: move piecestore to pb
* fix statdb import naming
2018-09-18 07:39:06 +03:00
Egon Elbre
e7e2d4d7c9
use golangci-lint and add missing error checks ( #340 )
2018-09-11 16:13:25 +03:00
Egon Elbre
0f5a2f4ef5
Enable more linters ( #272 )
...
* enable more linters
* Run gofmt -s
* run goimports
* run unconvert
* fix naked return
* fix misspellings
* fix ineffectual assigments
* fix missing declaration
* don't use deprecated grpc.Errof
* check errors in tests
* run gofmt -w -r "assert.Nil(err) -> assert.NoError(err)"
* fix directory permissions
* don't use nil Context
* simplify boolean expressions
* use bytes.Equal instead of bytes.Compare
* merge variable declarations, remove redundant returns
* fix some golint errors
* run goimports
* handle more errors
* delete empty TestMain
* delete empty TestMain
* ignore examples for now
* fix lint errors
* remove unused values
* more fixes
* run gofmt -w -s .
* add more comments
* fix naming
* more lint fixes
* try switching travis to go1.11
* fix unnecessary conversions
* fix deprecated methods
* use go1.10 and disable gofmt/goimports for now
* switch to 1.10
* don't re-enable gofmt and goimports
* switch covermode to atomic because of -race
* gofmt
2018-08-27 11:28:16 -06:00