#!/usr/bin/env python3 # Import dependencies import socket import time import random import struct import hashlib import binascii print('\n Hush Your Money Daemon is starting...\n') # Binary encode the sub-version def create_sub_version(): sub_version = "/Satoshi:0.7.2/" return b'\x0F' + sub_version.encode() # Binary encode the network addresses def create_network_address(ip_address, port): network_address = struct.pack('>8s16sH', b'\x01', bytearray.fromhex("00000000000000000000ffff") + socket.inet_aton(ip_address), port) return(network_address) # Create the TCP request object def create_message(magic, command, payload): checksum = hashlib.sha256(hashlib.sha256(payload).digest()).digest()[0:4] return(struct.pack('L12sL4s', magic, command.encode(), len(payload), checksum) + payload) # Create the "version" request payload def create_payload_version(peer_ip_address): version = 60002 services = 1 timestamp = int(time.time()) addr_local = create_network_address("127.0.0.1", 8333) addr_peer = create_network_address(peer_ip_address, 8333) nonce = random.getrandbits(64) start_height = 0 payload = struct.pack('