public static void EncodeInventoryPayload(Stream stream, InventoryPayload invPayload) { using (var writer = new BinaryWriter(stream, Encoding.ASCII, leaveOpen: true)) { writer.WriteList(invPayload.InventoryVectors, invVector => EncodeInventoryVector(stream, invVector)); } }
public static byte[] EncodeInventoryPayload(InventoryPayload invPayload) { using (var stream = new MemoryStream()) { EncodeInventoryPayload(stream, invPayload); return(stream.ToArray()); } }
private void HandleGetData(InventoryPayload payload) { var handler = this.OnGetData; if (handler != null) { handler(this, payload); } }
private void OnGetData(Peer peer, InventoryPayload payload) { foreach (var invVector in payload.InventoryVectors) { switch (invVector.Type) { case InventoryVector.TYPE_MESSAGE_BLOCK: //Block block; //if (this.blockCache.TryGetValue(invVector.Hash, out block)) //{ // peer.Sender.SendBlock(block).Forget(); //} break; case InventoryVector.TYPE_MESSAGE_TRANSACTION: //TODO break; } } }
private void OnGetData(RemoteNode remoteNode, InventoryPayload payload) { foreach (var invVector in payload.InventoryVectors) { switch (invVector.Type) { case InventoryVector.TYPE_MESSAGE_BLOCK: Block block; if (this.blockCache.TryGetValue(invVector.Hash, out block)) { //remoteNode.Sender.SendBlock(block).Forget(); } break; case InventoryVector.TYPE_MESSAGE_TRANSACTION: Transaction transaction; if (this.transactionCache.TryGetValue(invVector.Hash, out transaction)) { remoteNode.Sender.SendTransaction(transaction).Forget(); } break; } } }
public static byte[] EncodeInventoryPayload(InventoryPayload invPayload) { using (var stream = new MemoryStream()) using (var writer = new BinaryWriter(stream)) { EncodeInventoryPayload(writer, invPayload); return stream.ToArray(); } }
public static void EncodeInventoryPayload(BinaryWriter writer, InventoryPayload invPayload) { writer.WriteList(invPayload.InventoryVectors, invVector => EncodeInventoryVector(writer, invVector)); }