Tanguy Cizain
af3be7966b
Websocket Transport ( #593 )
...
* start of websocket transport
* more ws tests
* switch to common test
* add close to wsstream
* update ws & chronicles version
* cleanup
* removed multicodec
* clean ws outgoing connections
* renamed to websock
* removed stream from logs
* renamed ws to websock
* add connection closing test to common transport
* close incoming connection on ws stop
* renamed testwebsocket.nim -> testwstransport.nim
* removed raise todo
* split out/in connections
* add wss to tests
* Fix tls (#608 )
* change log level
* fixed issue related to stopping
some cosmetic cleanup
* use `allFutures` to stop/close things
Prevent potential race conditions when stopping two or more transports
* misc
* point websock to server-case-object branch
* interop test with go
* removed websock version specification
* add daemon -> native ws test
* fix & test closed read/write
* update readOnce, thanks jangko
Co-authored-by: Dmitriy Ryajov <dryajov@gmail.com>
2021-08-03 15:48:03 +02:00
Dmitriy Ryajov
3da656687b
use LPError more consistently ( #582 )
...
* use LPError more consistently
* don't use Exceptino
* annotate with raises
* don't panic on concatenation
* further rework error handling
2021-06-02 15:39:10 +02:00
Dmitriy Ryajov
ac4e060e1a
adding raises defect across the codebase ( #572 )
...
* adding raises defect across the codebase
* use unittest2
* add windows deps caching
* update mingw link
* die on failed peerinfo initialization
* use result.expect instead of get
* use expect more consistently and rework inits
* use expect more consistently
* throw on missing public key
* remove unused closure annotation
* merge master
2021-05-21 10:27:01 -06:00
Jacek Sieka
70deac9e0d
fix peer score accumulation ( #541 )
...
* fix accumulating peer score
* fix missing exception handling
* remove unnecessary initHashSet/initTable calls
* simplify peer stats management
* clean up tests a little
* fix some missing raises annotations
2021-03-09 13:22:52 +01:00
Jacek Sieka
b52dab9fd7
use stew/leb128 ( #481 )
...
* avoids multiple reallocations in readLp
* simplifies varint implementation
* remove vbuffer.length (unused)
2020-12-15 12:15:22 -06:00
Dmitriy Ryajov
92fa4110c1
Rework transport to use chronos accept ( #420 )
...
* rework transport to use the new accept api
* use the new chronos primits
* fixup tests to use the new transport api
* handle all exceptions in upgradeIncoming
* master merge
* add multiaddress exception type
* raise appropriate exception on invalida address
* allow retrying on TransportTooManyError
* adding TODO
* wip
* merge master
* add sleep if nil is returned
* accept loop handles all exceptions
* avoid issues with tray/except/finally
* make consistent with master
* cleanup accept loop
* logging
* Update libp2p/transports/tcptransport.nim
Co-authored-by: Jacek Sieka <jacek@status.im>
* use Direction enum instead of initiator flag
* use consistent import style
* remove experimental `closeWithEOF()`
Co-authored-by: Jacek Sieka <jacek@status.im>
2020-11-18 20:06:42 -06:00
Giovanni Petrantoni
9c1633bf87
fix ValidIpAddress multiaddress init return type
2020-10-31 13:20:29 +09:00
cheatfate
04c95cb7b0
Fix write should be writeArray.
2020-10-31 03:23:34 +02:00
cheatfate
ff48d0b1a2
Proper fix for init(ValidIpAddress).
2020-10-30 17:52:38 +02:00
Giovanni Petrantoni
3d9948a65e
ensure all multiaddress routines use Result
2020-10-30 23:50:04 +09:00
Giovanni Petrantoni
75b023c9e5
gossipsub audit fixes ( #412 )
...
* [SEC] gossipsub - rebalanceMesh grafts peers giving preference to low scores #405
* comment score choices
* compiler warning fixes/bug fixes (unsubscribe)
* rebalanceMesh does not enforce D_out quota
* fix outbound grafting
* fight the nim compiler
* fix closure capture bs...
* another closure fix
* #403 rebalance prune fixes
* more test fixing
* #403 fixes
* #402 avoid removing scores on unsub
* #401 handleGraft improvements
* [SEC] handleIHAVE/handleIWANT recommendations
* add a note about peer exchange handling
2020-10-30 21:49:54 +09:00
Giovanni Petrantoni
eeaa62feec
add more debug details to multiaddress assertions
2020-10-21 18:29:59 +09:00
Giovanni Petrantoni
b99d2039a8
Gossip one one ( #240 )
...
* allow multiple codecs per protocol (without breaking things)
* add 1.1 protocol to gossip
* explicit peering part 1
* explicit peering part 2
* explicit peering part 3
* PeerInfo and ControlPrune protocols
* fix encodePrune
* validated always, even explicit peers
* prune by score (score is stub still)
* add a way to pass parameters to gossip
* standard setup fixes
* take into account explicit direct peers in publish
* add floodPublish logic
* small fixes, publish still half broken
* make sure to waitsub in sparse test
* use var semantics to optimize table access
* wip... lvalues don't work properly sadly...
* big publish refactor, replenish and balance
* fix internal tests
* use g.peers for fanout (todo: don't include flood peers)
* exclude non gossip from fanout
* internal test fixes
* fix flood tests
* fix test's trypublish
* test interop fixes
* make sure to not remove peers from gossip table
* restore old replenishFanout
* cleanups
* restore utility module import
* restore trace vs debug in gossip
* improve fanout replenish behavior further
* triage publish nil peers (issue is on master too but just hidden behind a if/in)
* getGossipPeers fixes
* remove topics from pubsubpeer (was unused)
* simplify rebalanceMesh (following spec) and make it finally reach D_high
* better diagnostics
* merge new pubsubpeer, copy 1.1 to new module
* fix up merge
* conditional enable gossip11 module
* add back topics in peers, re-enable flood publish
* add more heartbeat locking to prevent races
* actually lock the heartbeat
* minor fixes
* with sugar
* merge 1.0
* remove assertion in publish
* fix multistream 1.1 multi proto
* Fix merge oops
* wip
* fix gossip 11 upstream
* gossipsub11 -> gossipsub
* support interop testing
* tests fixing
* fix directchat build
* control prune updates (pb)
* wip parameters
* gossip internal tests fixes
* parameters wip
* finishup with params
* cleanups/wip
* small sugar
* grafted and pruned procs
* wip updateScores
* wip
* fix logging issue
* pubsubpeer, chronicles explicit override
* fix internal gossip tests
* wip
* tables troubleshooting
* score wip
* score wip
* fixes
* fix test utils generateNodes
* don't delete while iterating in score update
* fix grafted defect
* add a handleConnect in subscribeTopic
* pruning improvements
* wip
* score fixes
* post merge - builds gossip tests
* further merge fixes
* rebalance improvements and opportunistic grafting
* fix test for now
* restore explicit peering
* implement peer exchange graft message
* add an hard cap to PX
* backoff time management
* IWANT cap/budget
* Adaptive gossip dissemination
* outbound mesh quota, internal tests fixing
* oversub prune score based, finish outbound quota
* finishup with score and ihave budget
* use go daemon 0.3.0
* import fixes
* byScore cleanup score sorting
* remove pointless scaling in `/` Duration operator
* revert using libp2p org for daemon
* interop fixes
* fixes and cleanup
* remove heartbeat assertion, minor debug fixes
* logging improvements and cleaning up
* (to revert) add some traces
* add explicit topic to gossip rpcs
* pubsub merge fixes and type fix in switch
* Revert "(to revert) add some traces"
This reverts commit 4663eaab6c
.
* cleanup some now irrelevant todo
* shuffle peers anyway as score might be disabled
* add missing shuffle
* old merge fix
* more merge fixes
* debug improvements
* re-enable gossip internal tests
* add gossip10 fallback (dormant but tested)
* split gossipsub internal tests into 1.0 and 1.1
Co-authored-by: Dmitriy Ryajov <dryajov@gmail.com>
2020-09-21 11:16:29 +02:00
Eugene Kabanov
b832668768
Minprotobuf refactoring 2 ( #269 )
...
* Protobuf refactoring stage II.
* Remove NoError.
* Change trace level for invalid message.
2020-07-15 10:25:39 +02:00
Eugene Kabanov
efb952f18b
[WIP] Minprotobuf refactoring ( #259 )
...
* Minprotobuf initial commit
* Fix noise.
* Add signed integers support.
Add checks for field number value.
Remove some casts.
* Fix compile errors.
* Fix comments and constants.
2020-07-13 14:43:07 +02:00
Giovanni Petrantoni
ec00c7fc50
Peer resultification and defect only ( #245 )
...
* Peer resultification and defect only
* Fixing some tests
* test fixes
* Rename peer into peerid
* better result error message in identify
* further merge fixes
2020-07-01 08:25:09 +02:00
Jacek Sieka
8d9e231a74
grab agentversion/protoversion ( #211 )
2020-06-09 12:42:52 -06:00
Zahary Karadjov
2aebae56c0
Don't rely on the side-effects from doAssert
2020-06-05 19:12:10 +03:00
Zahary Karadjov
828a80ec8f
Make the MultiAddress.init function used in NBC non-failing
2020-06-05 17:51:22 +03:00
Jacek Sieka
7e31210455
cover missing case in MultiAddress.init ( #198 )
...
* cover missing case in MultiAddress.init
* raise assert on marker in protocol
* unify inits for markers / non-markers
* fix string
2020-06-01 14:41:45 +02:00
Giovanni Petrantoni
6affcda937
Less exceptions more results ( #188 )
...
* Less exceptions more results
* Fix daemonapi and interop tests
* Add multibase
* wip multiaddress
* fix the build, consuming new result types
* fix standard setup
* Simplify match, rename into MaError, add more exaustive err text
* Fix the CI issues
* Fix directchat build
* daemon api fixes
* better err messages formatting
Co-authored-by: Zahary Karadjov <zahary@gmail.com>
2020-05-31 16:22:49 +02:00
Giovanni Petrantoni
7dcb807f64
Crypto utilities resultification ( #150 )
2020-05-18 07:25:55 +02:00
cheatfate
290ba712e9
Fix MultiAddress.protoAddress() bug for fixed arrays.
...
Add tests for it.
2020-04-28 14:43:44 +03:00
cheatfate
917b5f5c84
Add MultiAddress.init(integer) for tcp,udp,dccp,sctp protocols.
...
Add tests for it.
2020-04-23 08:10:17 -06:00
Eugene Kabanov
91d2f52f4e
Add some utility procedures to MultiAddress. ( #94 )
...
* Add some utility procedures to MultiAddress.
* Do not use result and add more operations to be more effective for compiler.
2020-02-27 19:26:42 +02:00
cheatfate
5b6f4bf5fa
Export MultiAddress pattern procedures.
2020-02-12 12:04:12 +02:00
Yuriy Glukhov
e0aae6d8ac
Moved base32, 58 and 64 to stew
2019-12-13 16:00:39 +02:00
cheatfate
76fee97724
Fix MultiAddress.init(PeerID) compilation problem.
2019-11-04 20:57:17 +02:00
cheatfate
833e8c9406
Fix overflow problem.
...
Fix compilation warnings.
2019-10-29 20:51:48 +02:00
cheatfate
cc0d45c482
Add protoAddress() utility procedure.
2019-10-29 15:38:37 +02:00
Dmitriy Ryajov
21af081066
remove init in favor of upstream init
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
a4431a86a1
fixing windows build issue
2019-10-11 08:15:24 +09:00
Dmitriy Ryajov
0b77c8c6e3
add init from TransportAddress to multiaddress
2019-10-11 08:15:24 +09:00
cheatfate
fb9d2d7d05
Add MultiAddress.init(TransportAddress).
2019-10-10 07:16:02 +03:00
cheatfate
dfd824bd03
Fix #22 .
...
Fix wire.initTAddress(MultiAddress).
Add Windows support to daemonapi.
Add CI tests for daemonapi on Windows.
Fix Linux CI tests to install latest daemon.
2019-08-01 08:56:59 +03:00
Zahary Karadjov
3493b9ff7f
Cosmetic changes requested by cheatfate
2019-06-24 05:39:13 +03:00
Zahary Karadjov
dbcc6ce78b
Add support for specifying the listening address of the Daemon
2019-06-24 05:39:13 +03:00
Zahary Karadjov
d5b51bcf9e
Use CatchableError
2019-06-24 05:39:13 +03:00
cheatfate
f8dc3abe36
Add MultiAddress pattern matching procedures (go-multiaddr-fmt) with tests.
...
Add some comments.
2019-03-20 11:41:37 +02:00
cheatfate
d7a7f8102d
Change PeerID type from distinct type.
...
Fix MultiAddress compilation error.
Fix chat example.
2019-03-05 22:28:46 +02:00
cheatfate
a96718cf9e
Add PeerID support to multiaddress.
...
Change some PeerID api.
Some fixes to chat.
2019-03-05 14:09:26 +02:00
cheatfate
7593d4d970
Fix unix path multiaddress serialization/deserialization.
...
Add tests for unix path multiaddress.
Add wire.nim.
Fix latest breaking changes from go-libp2p-daemon.
2019-01-09 19:12:15 +02:00
cheatfate
7e2d3e213f
Add isWire() procedure for MultiAddress.
2018-12-29 14:44:27 +02:00
cheatfate
38f82df582
Add write() and encode() procedures.
2018-12-16 04:54:07 +02:00
cheatfate
8b00514dd7
Fix compilation error.
2018-12-14 12:28:22 +02:00
cheatfate
b486410ac0
Add multicodec to table and make it single source of multiformat codes.
...
Adapt multiaddress and multihash to use multicodec.
2018-12-05 17:24:07 +02:00
cheatfate
53fc4cce41
Fix MultiAddress Onion and P2P address validation and encoding/decoding.
...
Enabled Onion/P2P tests.
Add nimcrypto dependency to nimble file.
2018-12-05 02:30:50 +02:00
cheatfate
9d55f41909
Update example chat /consearch now shows if peers are supporting p2p-circuit.
...
Add utility procedures for multiaddress.
2018-11-27 22:58:16 +02:00
cheatfate
98aa3ed281
Add VBuffer implementation.
...
Add MultiAddress implementation and tests.
Adapt chat to use /p2p-circuit
2018-11-27 14:16:04 +02:00