Instead of accessing its reader and writer directly.
TODO: considering add `ReaderWriterCloser` interface and let connection
and stream inherit from it.
- Add `StreamCommunicator` and `RawConnectionCommunicator`, read/write
messages with delim codec, with `IMuxedStream` and `IRawConnection`
respectively.
- Use it in `Multiselect` and `MultiselectClient`.
* ignore kad
* fix swarm, and minor
* fix init and swarm
* ignore pb
* enable mypy
* fix basic host
* fix tcp
* fix mplex
* add typing for pb
* skip format pyi
* [mypy] no need to ignore pb now
* add typing to chat
* 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
* Add generic protocol handler
* Add generic protocol handler to stream muxing pipeline
* Modify conn_handler to only deal with connections
* mplex accept stream architecture changes
* Add create generic protocol handler
* Fix minor bugs
* who would win 4 devs or one not
* Debugging
* rearch with handle_incoming infinite loop, seems to work, needs cleanup"
* passing linting, still needs cleanup
* fixing linting again; code still needs cleanup
* fixing tests; code still needs cleanup
* adding test cleanup and task cleanup, removing prints
* linting, and cleanup complete
* storing connections based on peer id
* remove dead code
* remove unnecessary peer_id