Proto commits in libp2p/cpp-libp2p

These 15 commits are when the Protocol Buffers files have changed:

Commit:cab1bf2
Author:turuslan

update gossip (part) Signed-off-by: turuslan <turuslan.devbox@gmail.com>

Commit:fbb2f16
Author:turuslan
Committer:turuslan

interop Signed-off-by: turuslan <turuslan.devbox@gmail.com>

Commit:d117c3c
Author:Dmitriy Khaustov
Committer:GitHub

Refactor: format, include-guards, copyrights, git-hooks (#222) * refactor: change copyright comments * refactor: replace include-guards by pragma-once * update: clang-format config * feature: git-hook for format * fix: target `clang-format` * refactor: reapply updated clang-format config * update: bump version to 0.1.17 * fix: clang-format version selector Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com>

The documentation is generated from this commit.

Commit:04faee4
Author:Ruslan Tushov
Committer:GitHub

remove gossip multi-topic (#159) Signed-off-by: turuslan <turuslan.devbox@gmail.com>

Commit:8d1b7ef
Author:art-gor
Committer:GitHub

Feature/reentrancy (#111) * gossip confirmance fixes #1 * gossip: bugfixes * gossip: more fixes * gossip: build related minor changes * gossip: one more fix * gossip: flush hello message asap * experiment with noise protocol * made injector creation fns inline to prevent multiple definitions * gossip restructured, interop issues fixed * Noise::write now reports the correct amount of bytes Signed-off-by: Igor Egorov <igor@soramitsu.co.jp> * refactoring: move prev implementation of Kademlia to other namespace Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * feature: kademlia dependency injection Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * feature: improve random generator Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: getting listened multiaddress in tcp listener Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: reduce logging in secio Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * draft: new implementation of kademlia Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * draft: processing with kademlia Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * draft: continue processing with kademlia Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * draft: continue Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * draft: kademlia Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * feature: validation Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: DSA Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * feature: CIDv1 encoding refactoring: replace deprecated sha256 function by hasher Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: multiaddress operations Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * feature: make PeerId comparable to using in std::set Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * refactoring: addr repo Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: Go-implementation compatibility Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * feature: rendezvous chat as example of Kademlia using Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * feature: unit-test for kademlia parts Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: StorageBackend interface fix: ContentValue Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * wipe: remove previous implementation of Kademlia Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: cmake files Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> cmake Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: some warnings Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: resolve TODOes, comments, format Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: clang-tidy issues Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: clang-tidy issues Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: clang-tidy issues Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * feature: using timeout for make new stream feature: smart using of peer routing Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: kademlia message parsing Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * refactoring: optimize executors' working Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * refactoring: optimize start of rendezvous chat Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * refactoring: headers including Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * refactoring: remaining request executors; naming Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * feature: add handle and timeout as argument of Host::connect Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * fix: some log messages Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> * injectors temp fix * gossip: uncommented writing bytes checking * removed redundant std::hash definition * Hack yamux to allow weighty messages processing Signed-off-by: Igor Egorov <igor@soramitsu.co.jp> * fix vtable * fixes in DI injectors * yamux test corrected according to curent window update policy * added buffering primitives * defer* functions in Reader/Writer interfaces and Yamux redesign pt.1 * scheduler fix regarding move assignment + cancel * write queue interface change * read buffer fix regarding subspan * some diagnostic logging * tcp connection fixes related to closing behavior * yamux bugfixes * yamux tests regression WIP * build fix * . * . * bugfixes * fixes * . * . * suppressed most verbose logging in yamux and multiselect * yamux stream adjustWindowSize adjusted * fixes regarding std::move of r/w callbacks (against possible ptrs invalidation) * test cases with jumbo messages transfer added for yamux on noise/tls/plaintext * bugfixes related to yamux window sizes, overflow, and acknowledgements * echo protocol and examples support very large msgs * changes in tests * all muxers acceptance test recovered * all muxers acceptance test: fixed issue with mock lifetime * CI fixes * yamux refactorings helped to avoid memory issues caused by reentrant callbacks * build fix for mac * another yamux fix to avoid memory issues caused by reentrant callbacks * gossip: hotfix related to unbanning peers * minor fixes reflecting review feedback * temp loggers workaround * Feature/multiselect upd (#121) * multiselect revised, WIP * multiselect: simple outbound stream negotiate * multiselect numerous fixes * multiselect: instances and reuse * multiselect: fixes * multiselect: removed old implementation * multiselect: interop with go impl fixes * multiselect: bugfixes * multiselect: ProtocolMuxer interface abstracts simple outbound stream negotiation * multiselect: cleanups and logging * trigger CI * temporarily disabled tests that required synchronous reaction of multiselect * just removed unused lines * reverted back ci.yml Co-authored-by: Igor Egorov <igor@soramitsu.co.jp> Co-authored-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com> Co-authored-by: turuslan <turuslan.devbox@gmail.com>

Commit:4a5963f
Author:Dmitriy Khaustov
Committer:GitHub

Peer discovery with Kademlia protocol (#100) * feature: improve random generator * fix: getting listened multiaddress in tcp listener * fix: reduce logging in secio * feature: new implementation of kademlia * feature: validation * fix: DSA * feature: CIDv1 encoding * refactoring: replace deprecated sha256 function by hasher * fix: multiaddress operations * feature: make PeerId comparable to using in std::set * refactoring: addr repo * feature: rendezvous chat as example of Kademlia using * feature: unit-test for kademlia parts * wipe: remove previous implementation of Kademlia * fix: cmake files * fix: some warnings * feature: using timeout for make new stream * feature: smart using of peer routing * fix: kademlia message parsing * refactoring: headers including * feature: add handle and timeout as argument of Host::connect * fix: some log messages * feature: Host::disconnect method * fix: providing listen-addr in messages of Identify protocol * refactoring: improve multiaddress manipulations * refactoring: one way for naming of target for protobuf * fix: clean up; format * fix: change level some log * fix: suppress connection to themselves * fix: prepare rendezvous chat as example to introduction and provide README Signed-off-by: Dmitriy Khaustov aka xDimon <khaustov.dm@gmail.com>

Commit:fa3e8d6
Author:Igor Egorov
Committer:GitHub

Add Noise Protocol Support (#90) Signed-off-by: Igor Egorov <igor@soramitsu.co.jp> Co-authored-by: artyom-yurin <artem_yrin@mail.ru> Co-authored-by: turuslan <turuslan.devbox@gmail.com>

Commit:6004b34
Author:Igor Egorov

Noise initial protobuf, classes and cmake Signed-off-by: Igor Egorov <igor@soramitsu.co.jp>

Commit:f611ebe
Author:art-gor
Committer:GitHub

Gossip pr 3 (#48) * gossip: wire protocol * gossip: peer set and wire protocol utilities revised * gossip: msg cache w/expiration * data structures for gossip: fixes and unittest * changes due to pr 1 feedback * one more fix due to PR requests * one more try against ci * gossip part 2 * gossip: pr1 reflects pr2 * gossip: pr1 reflects pr2 * Fix/gossip pr 1 (#46) * Fix build for macos * Improvements * deprecated logic removed * gossip: cleanups and renamings * gossip: renmings * gossip serialization method signature changed * gossip: serialization signature changed * Gossip pr 1 (#37) * gossip: wire protocol * gossip: peer set and wire protocol utilities revised * gossip: msg cache w/expiration * data structures for gossip: fixes and unittest * changes due to pr 1 feedback * one more fix due to PR requests * one more try against ci * gossip: pr1 reflects pr2 * gossip: pr1 reflects pr2 * Fix/gossip pr 1 (#46) * Fix build for macos * Improvements * deprecated logic removed * gossip: cleanups and renamings * gossip: renmings * gossip serialization method signature changed Co-authored-by: kamilsa <kamilsa16@gmail.com> * refactorings * typo fixed * minor fixes * +gossip-example * +gossip-example * fixes and example * debug things * gossip: subscriptions test and bugfixes * dont forward messages back to their origins * injectors made parametric (to build examples) * gossip: fixes * more fixes in pub-sub * fixes in gossip example * sublogger can set new instance name * message cache fix exp times * chat example * logs and traces added for debug purposes * README.md for gossip examples * small patch for older stdlibs support * more logs and traces * more logs and traces * new inbound protocol streams are allowed for all connections * streams issues fixed * gossip injector fixed * gossip new example * boost_program_options in dependencies * scheduler with config param (strong type for injector) * tests fixed due to recent changes * cleanup in yamux and dialer-listener hotfixes * hotfixes to yamux and dialer * yamux changes * parametrized netork and host injectors * streams regression test * patched mplex connections/streams so that streams get notified about EOF Co-authored-by: kamilsa <kamilsa16@gmail.com>

Commit:de0259c
Author:Igor Egorov
Committer:GitHub

SECIO (#41) * Fix public key part in echo server example * Remove unused Plaintext session class * Rename Plaintext header guards * Fix illegal comparison in crypto provider impl * Implement SECIO * Switch Kademlia to boost::optional instead of std * Add -insecure option to echo server * Add MessageReadWriterBigEndian * Add SECIO cases to host_integration_test * Add SECIO marshallers tests Possible Drawbacks Not possible to perform cross-implementation testing by now (go implementation of libp2p got updated much so c++ implementation needs to be changed too). P521 curve-based algorithm could be faulty - needs to be tested when cross-implementation testing gets possible. User's callback could be called twice in case of error inside secureInbound and secureOutbound methods - this could be easily fixed if we count this as an issue. Signed-off-by: Igor Egorov <igor@soramitsu.co.jp>

Commit:84a81e1
Author:Akvinikym
Committer:GitHub

Go Echo Client Compatibility (#8) Signed-off-by: Akvinikym <anarant12@gmail.com>

Commit:3214923
Author:Yura Zarudniy
Committer:Bohdan

fix generation paths (#6)

Commit:4420ae9
Author:Yura Zarudniy

move headers, partially rename paths, fix

Commit:676a596
Author:Yura Zarudniy

partially moved headers, partially renamed

Commit:3f184ab
Author:masterjedy

add initial