mhchia
0b466ddc86
Add lock to RawConnection
...
To avoid `self.writer.drain()` is called in parallel.
Reference: https://bugs.python.org/issue29930
2019-08-22 22:53:47 +08:00
mhchia
5768daa9bf
PR feedbacks
...
- Nits
- Add `SecurityUpgradeFailure` and handle `UpgradeFailure` in Swarm.
2019-08-22 22:53:47 +08:00
Kevin Mai-Husan Chia
2a1367b011
Apply suggestions from code review
...
Co-Authored-By: NIC Lin <twedusuck@gmail.com>
2019-08-22 22:53:47 +08:00
mhchia
de8d356955
Fix tests failure due to lack of peer id
...
Fix it through doing plaintext handshake.
2019-08-22 22:53:47 +08:00
mhchia
bb7d37fd4f
Fix msg encoding
...
- Change varint-prefix encode to fixedint-prefix(4 bytes) encode.
2019-08-22 22:53:46 +08:00
mhchia
22b1a5395d
A working plaintext 2.0 without validation
2019-08-22 22:53:46 +08:00
mhchia
a0923d202a
Move varint and delim read/write to toplevel
...
To `libp2p.utils`.
2019-08-22 22:53:46 +08:00
mhchia
5192944724
Update pb
2019-08-22 22:53:46 +08:00
mhchia
59b373b48a
Add plaintext.proto
...
Update Makefile to handle the import in `plaintext.proto`.
Import path is modified to be relative to the project root.
And we run `protoc` from where `Makefile` locates, i.e. the project
root.
Reference:
- plaintext.proto: 62b2c6c482/sec/insecure/pb/plaintext.proto
2019-08-22 22:53:46 +08:00
mhchia
7bc363f2fa
Remove initiator in Mplex
...
Besides, fix the wrong passed `multi_addr` to `mplex_stream`.
2019-08-22 22:53:45 +08:00
mhchia
2752e7a04b
Ignore mypy error here
2019-08-22 15:58:38 +08:00
mhchia
dbd4ed44dd
Fix the issue when importing from other package
2019-08-22 15:36:17 +08:00
mhchia
550c23f9f9
PR feedback
...
- Use the order in `MuxerMultistream` as the precedence in multiselect
2019-08-21 11:43:25 +08:00
mhchia
8596f7390f
PR feedback: set protocol_id to constants
2019-08-21 11:43:24 +08:00
mhchia
d7d8440b2c
PR feedback: nitpicks
2019-08-21 11:43:24 +08:00
mhchia
4358a4bc89
Negotiate multiselect version for Muxer
...
`MuxerMultistream` is introduced to negotiate `Multiselect` version
before negotiating Multiplexer's version. This is required by
multistream 1.x
2019-08-21 11:43:24 +08:00
Alex Stokes
e1d3f1601f
Satisfy mypy
2019-08-20 19:28:32 +02:00
Alex Stokes
87d943aa39
Internalize the protobuf serialization to the concept of a Key
...
Given its use across various components of `libp2p` (not just peer IDs),
it makes the abstraction cleaner to pull the serialization into the
key class and expose the canonical serialization to bytes.
2019-08-20 19:01:36 +02:00
mhchia
5d611801c7
Fix isort
2019-08-18 19:51:04 +08:00
mhchia
86d4ce1da8
Add delim_encode
and delim_read
...
- Add `StreamCommunicator` and `RawConnectionCommunicator`, read/write
messages with delim codec, with `IMuxedStream` and `IRawConnection`
respectively.
- Use it in `Multiselect` and `MultiselectClient`.
2019-08-18 19:51:04 +08:00
mhchia
8cd23abfe2
Remove the leftover merge related stuff
2019-08-16 11:03:16 +08:00
mhchia
e293b89925
Fix mypy
...
It seems the stub doesn't allow default value for params
2019-08-16 11:03:16 +08:00
mhchia
c5f32bf431
PR feedback for MplexStream.read
2019-08-16 11:03:16 +08:00
Kevin Mai-Husan Chia
8699568d43
Update libp2p/stream_muxer/mplex/mplex_stream.py
...
Co-Authored-By: Alex Stokes <r.alex.stokes@gmail.com>
2019-08-16 11:03:16 +08:00
mhchia
f2c31f6fe3
Fix isort
2019-08-16 11:03:16 +08:00
mhchia
b27cd0f24f
Use bytearray
over bytes
...
To avoid copies.
2019-08-16 11:03:16 +08:00
mhchia
92320523d5
Add the missing exceptions.py
2019-08-16 11:03:16 +08:00
mhchia
e37b8bcf19
mypy: Add read_buffer_nonblocking
in Mplex
2019-08-16 11:03:16 +08:00
mhchia
f281e3e1db
flake8
2019-08-16 11:03:16 +08:00
mhchia
9f8276fa84
Support read(n=-1)
...
Now, `n=-1` indicates that we want to read until EOF. However, now we
only read until we have no new message.
2019-08-16 11:03:16 +08:00
mhchia
9cb6ec1c48
Modify the behavior of MplexStream.read
2019-08-16 11:03:16 +08:00
mhchia
2485a00e24
Modify NetStream
to read n bytes
2019-08-16 11:03:16 +08:00
Alex Stokes
7535a02da7
Clean up key gen
2019-08-15 19:24:30 -07:00
Alex Stokes
9a4e23a803
mypy protobuf plugin requires keyword-based initializers
2019-08-15 16:36:32 -07:00
Alex Stokes
82bae341a7
Run isort over files that were missing it
2019-08-15 16:33:35 -07:00
Alex Stokes
2e3ffb9d53
Use types for {Private,Public}Key and address other missing type hints
2019-08-15 16:33:34 -07:00
Alex Stokes
e7d2681fc0
Move base implementations into BaseSession
2019-08-15 16:33:34 -07:00
Alex Stokes
9e18d7561d
Supply local priv and pub key when upgrading to a secure transport
2019-08-15 16:33:34 -07:00
Alex Stokes
7942b7eaa7
Expose writer
2019-08-15 16:33:34 -07:00
Alex Stokes
20dd7d777a
More efficiently remove trailing newline from message
2019-08-15 16:33:34 -07:00
Alex Stokes
0ebc8ffb21
Wire some missing properties up
2019-08-15 16:33:34 -07:00
Alex Stokes
02e073d85a
Keep the host's private key for use in transports
2019-08-15 16:33:33 -07:00
Alex Stokes
879cbf1abd
Add an "insecure session" that satisfies the ISecureConn
interface
2019-08-15 16:33:33 -07:00
Alex Stokes
1e5357a1e1
Update the ISecureConn
interface following the reference and simplify accordingly
2019-08-15 16:33:33 -07:00
Alex Stokes
ab7653526f
Code cleanup / formatting
2019-08-15 16:33:33 -07:00
Alex Stokes
b98025c379
Move security transports into their respective sub-packages
2019-08-15 16:33:33 -07:00
Alex Stokes
d50e1b6872
Use direct types over indirect types
2019-08-15 16:33:32 -07:00
Alex Stokes
ff5eaf2429
Merge pull request #249 from ralexstokes/fix-mypy-protos
...
Add `mypy` protobufs plugin and regenerate protobufs
2019-08-15 16:15:26 -07:00
Alex Stokes
0f81ca42a6
Add mypy
protobufs plugin and regenerate protobufs
2019-08-15 16:01:44 -07:00
mhchia
97308c897e
Add the missing __init__.py in pb/
...
Error: https://circleci.com/gh/mhchia/trinity/5342?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link
2019-08-15 21:03:45 +08:00