Commit Graph

44 Commits

Author SHA1 Message Date
c8005c8113 Run isort in repo 2019-08-03 17:50:14 +08:00
2e94fcf56c Remove pylint:disable 2019-08-02 23:26:06 +08:00
cd684aad9e Update peer_id to type peer.ID in pubsub folder 2019-08-02 14:45:23 +08:00
0ae9840928 Run black over repo 2019-07-31 15:00:12 -07:00
9683d5e8ac Add tests for Pubsub
- `test_handle_subscription`
- `test_handle_talk`
- `test_message_all_peers`
2019-07-31 14:15:11 +08:00
3a42d72cd9 Fix a minor bug for pb optional field
In `Pubsub.continuously_read_stream`, it checks whether this is a
control message enclosed in RPC message with `if rpc_incoming.control:`.
However, in pb2, the condition is always true because a default value is
returned when a field is not set. Solved it by changing it to
`if rpc_incoming.HasField("control"):`.
2019-07-31 14:15:11 +08:00
550289a439 Combine test_subscription.py to test_pubsub.py
And add a bunch of tests for pubsub
2019-07-31 14:15:10 +08:00
96563c0d84 Add fixtures for pubsub and router
And a starting `test_pubsub.py`
2019-07-31 14:14:13 +08:00
5e215901c0 Apply PR feedback 2019-07-30 23:41:28 +08:00
437b7665c4 Fix:
type object not subscriptable
2019-07-30 18:00:30 +08:00
c4105688d1 Fix after rebase 2019-07-30 17:31:08 +08:00
e53727d301 Apply PR feedback: fix type hints 2019-07-30 16:28:25 +08:00
2d4e23cfe2 Fix cyclic import and lint 2019-07-30 16:28:05 +08:00
a4a0d79f6d Improve import layout 2019-07-30 16:27:29 +08:00
d716e90e17 Fix on type hints 2019-07-30 16:25:33 +08:00
b2f496d081 Fix type hints except pb msg in pubsub folder 2019-07-30 16:24:34 +08:00
8eb6a230ff Fix and add type hints to pubsub.py 2019-07-30 15:32:58 +08:00
f02d38c0ee Reflect PR feedback
* Rename `src` to `msg_forwarder` in pubsub/floodsub/gossipsub
* Rename Variables
* Sort imports
* Clean up
2019-07-29 12:09:35 +08:00
c252c62009 Update libp2p/pubsub/pubsub.py
Co-Authored-By: NIC Lin <twedusuck@gmail.com>
2019-07-28 16:05:29 +08:00
766d8ba1e1 A little bit clean up 2019-07-27 12:06:36 +08:00
dadcf8138e Fix the tests according to pubsub.Publish
And refactored a bit.
2019-07-25 16:58:00 +08:00
cae4f34034 Refactor floodsub.publish
Passed the first test of floodsub
2019-07-25 14:08:16 +08:00
3f52b0dc0a Remove leftover imports 2019-07-24 21:57:46 +08:00
b528c211b9 Temp modified publish 2019-07-24 21:55:57 +08:00
218bdb42c4 Add basic functionalities of publish 2019-07-24 21:55:04 +08:00
8f9e5a28ff Temp 2019-07-24 21:54:36 +08:00
d6c19e71a6 Add typing and notes in pubsub 2019-07-24 14:54:30 +08:00
89347be526 Prevent self re-unsubscription 2019-07-18 13:26:31 +08:00
f25d97fbd3 Prevent self re-subscription 2019-07-15 16:32:05 +08:00
6d9ec7a9c5 Handle the unsubscribe case 2019-07-15 16:28:29 +08:00
9052e8f8bd The Gossipsub PR (#162)
* Add handle_rpc call to pubsub

* Scaffold gossipsub functions

* Add timer

* Implement most of mesh construction

* Implement emit and handle

* Implement fanout heartbeat

* Refactor emit

* some gossipsub cleanup and test

* minor lint stuff, more to come

* Implement publish

* Fix comment

* Modify pubsub/gossipsub so that floodsub tests pass using gossipsub router

* Add floodsub tests to gossipsub

* Handle case where select_from_minus, num_to_select > size(pool-minus)

* Add topic membership

* Implement handle ihave

* Implement most of iwant

* Add mcache.add and comments

* Refactor handle_ihave

* Implement stream write in handle_iwant

* Implement gossip heartbeat

* unresolved vars

* initial mcache code

* documenting mcache

* writing test/debugging mcache

* finished mcache test and debugged

* Make gossipsub backward compatibility its own file

* remove mcache prints

* DEBUGGING

* Add sender_peer_id to handle_rpc to get gossip test passing

* Modify gossipsub to make fanout work

* fanout maintenance test

* debugging gsub GOSSIP

* DEBUGGING

* debugged sender seen cachce

* adding lru, removing prints

* pylint cleanup

* Fix github comments in PR

* minor floodsub possible bugfix
2019-05-06 23:44:13 -04:00
d04798ce7c lru cache seen_messages 2019-04-05 21:46:03 -04:00
feaa393c5f Fix seen messages bug 2019-04-03 23:32:03 -04:00
9d16aa834d Modify pubsub to have seen message check incorporate seqno and node id 2019-04-03 23:32:03 -04:00
f6299c7dee Add priority queues to handle seqno 2019-04-03 23:32:03 -04:00
0238dff217 remove unused code 2019-04-02 21:17:48 -04:00
41d1aae55b clean up 2019-04-01 16:55:44 -04:00
6eb070b78e fix all tests 2019-04-01 16:23:20 -04:00
89a19a9213 reworked floodsub logic 2019-03-31 22:16:28 -04:00
f5af4b9016 remove message.py 2019-03-30 18:49:50 -04:00
aec783b843 reworked subscribe unsubsrcibe 2019-03-30 17:59:08 -04:00
bf17f424b3 RPC conversion progress 2019-03-29 16:23:30 -04:00
3cfeccaf17 rewrote get_hello_packet 2019-03-28 15:25:33 -04:00
57077cd3b4 [WIP] PubSub and FloodSub development (#133)
* Add notifee interface

* Add notify function to network interface

* Implement notify feature

* Add tests for notify

* Make notifee functions all async

* Fix linting issue

* Fix linting issue

* Scaffold pubsub router interface

* Scaffold pubsub directory

* Store peer_id in muxed connection

* Implement pubsub notifee

* Remove outdated files

* Implement pubsub first attempt

* Prepare pubsub for floodsub

* Add mplex conn to net stream and add conn in notify tests

* Implement floodsub

* Use NetStream in generic protocol handler

* Debugging async issues

* Modify test to perform proper assert. Test passes

* Remove callbacks. Reduce sleep time

* Add simple three node test

* Clean up code. Add message classes

* Add test for two topics

* Add conn to net stream and conn tests

* Refactor test setup to remove duplicate code

* Fix linting issues

* Fix linting issue

* Fix linting issue

* Fix outstanding unrelated lint issue in multiselect_client

* Add connect function

* Remove debug prints

* Remove debug prints from floodsub

* Use MessageTalk in place of direct message breakdown

* Remove extra prints

* Remove outdated function

* Add message to queues for all topics in message

* Debugging

* Add message self delivery

* Increase read timeout to 5 to get pubsub tests passing

* Refactor testing helper func. Add tests

* Add tests and increase timeout to get tests passing

* Add dummy account demo scaffolding

* Attempt to use threads. Test fails

* Implement basic dummy node tests using threads

* Add generic testing function

* Add simple seven node tree test

* Add more complex seven node tree tests

* Add five node ring tests

* Remove unnecessary get_message_type func

* Add documentation to classes

* Add message id to messages

* Add documentation to test helper func

* Add docs to dummy account node helper func

* Add more docs to dummy account node test helper func

* fixed linting errors in floodsub

* small notify bugfix

* move pubsub into libp2p

* fixed pubsub linting

* fixing pubsub test failures

* linting
2019-03-23 13:52:02 -04:00