Beispiel #1
0
            public GetHeadersMessage(
                List <Header> headerLocator,
                uint versionProtocol)
                : base("getheaders")
            {
                HeaderLocator = headerLocator;
                StopHash      =
                    ("00000000000000000000000000000000" +
                     "00000000000000000000000000000000").ToBinary();

                List <byte> payload = new List <byte>();

                payload.AddRange(BitConverter.GetBytes(versionProtocol));
                payload.AddRange(VarInt.GetBytes(HeaderLocator.Count()));

                for (int i = 0; i < HeaderLocator.Count(); i++)
                {
                    payload.AddRange(
                        HeaderLocator.ElementAt(i).Hash);
                }

                payload.AddRange(StopHash);

                Payload = payload.ToArray();
            }
Beispiel #2
0
        public static List <byte> GetBytes(string text)
        {
            List <byte> serializedValue = VarInt.GetBytes(text.Length);

            serializedValue.AddRange(Encoding.ASCII.GetBytes(text));

            return(serializedValue);
        }
            void SerializePayload()
            {
                var payload = new List <byte>();

                payload.AddRange(VarInt.GetBytes(Headers.Count));

                foreach (Header header in Headers)
                {
                    payload.AddRange(header.GetBytes());
                    payload.Add(0);
                }

                Payload = payload.ToArray();
            }
Beispiel #4
0
            public InvMessage(List <Inventory> inventories)
                : base("inv")
            {
                Inventories = inventories;

                List <byte> payload = new List <byte>();

                payload.AddRange(VarInt.GetBytes(inventories.Count));

                Inventories.ForEach(
                    i => payload.AddRange(i.GetBytes()));

                Payload = payload.ToArray();
            }
Beispiel #5
0
            public GetDataMessage(List <Inventory> inventories)
                : base("getdata")
            {
                Inventories = inventories;

                List <byte> payload = new List <byte>();

                payload.AddRange(VarInt.GetBytes(Inventories.Count()));

                for (int i = 0; i < Inventories.Count(); i++)
                {
                    payload.AddRange(Inventories[i].GetBytes());
                }

                Payload = payload.ToArray();
            }