Ejemplo n.º 1
0
    def send_version(self):
        version = self.bitcoin_network.client_version
        services = self.bitcoin_network.available_services
        now = int(time.time())

        recipient_address = Bitcoin.serialize_network_address(
            None,
            self.bitcoin_network.available_services,
            with_timestamp=False)
        sender_address = Bitcoin.serialize_network_address(
            None,
            self.bitcoin_network.available_services,
            with_timestamp=False)

        nonce = random.randrange(0, 1 << 64)
        user_agent = Bitcoin.serialize_string(self.bitcoin_network.user_agent)
        lastBlock = random.randrange(
            1024,
            102400 * 2)  # TODO - is it OK to just say '0' on every connect?

        payload = struct.pack(
            "<LQQ", version, services,
            now) + recipient_address + sender_address + struct.pack(
                "<Q", nonce) + user_agent + struct.pack("<L", lastBlock)
        message = Bitcoin.wrap_message("version", payload,
                                       Bitcoin.NETWORK_DELIVERY)

        self.send(message)
Ejemplo n.º 2
0
    def send_version(self):
        version  = self.bitcoin_network.client_version
        services = self.bitcoin_network.available_services
        now      = int(time.time())

        recipient_address = Bitcoin.serialize_network_address(None, self.bitcoin_network.available_services, with_timestamp=False)
        sender_address    = Bitcoin.serialize_network_address(None, self.bitcoin_network.available_services, with_timestamp=False)
        
        nonce      = random.randrange(0, 1 << 64)
        user_agent = Bitcoin.serialize_string(self.bitcoin_network.user_agent)
        lastBlock  = random.randrange(1024, 102400*2) # TODO - is it OK to just say '0' on every connect?

        payload = struct.pack("<LQQ", version, services, now) + recipient_address + sender_address + struct.pack("<Q", nonce) + user_agent + struct.pack("<L", lastBlock)
        message = Bitcoin.wrap_message("version", payload, Bitcoin.NETWORK_DELIVERY)

        self.send(message)