Ejemplo n.º 1
0
 async def send(self, message: Message):
     encoded: bytes = cbor.dumps({"f": message.function, "d": message.data})
     assert len(encoded) < (2**(LENGTH_BYTES * 8))
     self.writer.write(len(encoded).to_bytes(LENGTH_BYTES, "big") + encoded)
     try:
         # Need timeout here in case connection is closed, this allows GC to clean up
         await asyncio.wait_for(self.writer.drain(), timeout=10 * 60)
     except asyncio.TimeoutError:
         raise TimeoutError("self.writer.drain()")
     self.bytes_written += LENGTH_BYTES + len(encoded)
 async def _send_message(self, payload: Payload):
     encoded: bytes = cbor.dumps({
         "f": payload.msg.function,
         "d": payload.msg.data,
         "i": payload.id
     })
     size = len(encoded)
     assert len(encoded) < (2**(LENGTH_BYTES * 8))
     await self.ws.send_bytes(encoded)
     self.log.info(
         f"-> {payload.msg.function} to peer {self.peer_host} {self.peer_node_id}"
     )
     self.bytes_written += size
Ejemplo n.º 3
0
 async def send(self, message: Message):
     encoded: bytes = cbor.dumps({"f": message.function, "d": message.data})
     assert len(encoded) < (2**(LENGTH_BYTES * 8))
     self.writer.write(len(encoded).to_bytes(LENGTH_BYTES, "big") + encoded)
     await self.writer.drain()
     self.bytes_written += LENGTH_BYTES + len(encoded)
Ejemplo n.º 4
0
 def test_recursive_types(self):
     coin: Optional[Coin] = None
     l1 = [(bytes32([2] * 32), coin)]
     rr = RespondRemovals(uint32(1), bytes32([1] * 32), l1, None)
     c = cbor.loads(cbor.dumps(rr))
     RespondRemovals(c["height"], c["header_hash"], c["coins"], c["proofs"])