def connectionMade(self): """ Construct the initial version message and send it right away. Everything else will be handled by dataReceived. """ LOGINFO('Connection initiated. Start handshake') addrTo = str_to_quad(self.transport.getPeer().host) portTo = self.transport.getPeer().port addrFrom = str_to_quad(self.transport.getHost().host) portFrom = self.transport.getHost().port self.peer = [addrTo, portTo] services = '0'*16 msgVersion = PayloadVersion() msgVersion.version = 40000 # TODO: this is what my Satoshi client says msgVersion.services = services msgVersion.time = long(RightNow()) msgVersion.addrRecv = PyNetAddress(0, services, addrTo, portTo ) msgVersion.addrFrom = PyNetAddress(0, services, addrFrom, portFrom) msgVersion.nonce = random.randint(2**60, 2**64-1) msgVersion.subver = 'Armory:%s' % getVersionString(BTCARMORY_VERSION) msgVersion.height0 = -1 self.sendMessage( msgVersion ) self.factory.func_madeConnect()
def connectionMade(self): """ Construct the initial version message and send it right away. Everything else will be handled by dataReceived. """ LOGINFO('Connection initiated. Start handshake') addrTo = str_to_quad(self.transport.getPeer().host) portTo = self.transport.getPeer().port addrFrom = str_to_quad(self.transport.getHost().host) portFrom = self.transport.getHost().port self.peer = [addrTo, portTo] services = '0' * 16 msgVersion = PayloadVersion() msgVersion.version = 40000 # TODO: this is what my Satoshi client says msgVersion.services = services msgVersion.time = long(RightNow()) msgVersion.addrRecv = PyNetAddress(0, services, addrTo, portTo) msgVersion.addrFrom = PyNetAddress(0, services, addrFrom, portFrom) msgVersion.nonce = random.randint(2**60, 2**64 - 1) msgVersion.subver = 'Armory:%s' % getVersionString(BTCARMORY_VERSION) msgVersion.height0 = -1 self.sendMessage(msgVersion) self.factory.func_madeConnect()
_r = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141L _b = 0x0000000000000000000000000000000000000000000000000000000000000007L _a = 0x0000000000000000000000000000000000000000000000000000000000000000L _Gx = 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798L _Gy = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8L BEGIN_MARKER = '-----BEGIN ' END_MARKER = '-----END ' DASHX5 = '-----' RN = '\r\n' RNRN = '\r\n\r\n' CLEARSIGN_MSG_TYPE_MARKER = 'BITCOIN SIGNED MESSAGE' BITCOIN_SIG_TYPE_MARKER = 'BITCOIN SIGNATURE' BASE64_MSG_TYPE_MARKER = 'BITCOIN MESSAGE' BITCOIN_ARMORY_COMMENT = 'Comment: Signed by Bitcoin Armory v' +\ getVersionString(BTCARMORY_VERSION, 3) class UnknownSigBlockType(Exception): pass def randomk(): # Using Crypto++ CSPRNG instead of python's sbdRandK = CppBlockUtils.SecureBinaryData().GenerateRandom(32) hexRandK = sbdRandK.toBinStr().encode('hex_codec') return int(hexRandK, 16) # Common constants/functions for Bitcoin def hash_160_to_bc_address(h160, addrtype=0):
_r = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141L _b = 0x0000000000000000000000000000000000000000000000000000000000000007L _a = 0x0000000000000000000000000000000000000000000000000000000000000000L _Gx = 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798L _Gy = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8L BEGIN_MARKER = '-----BEGIN ' END_MARKER = '-----END ' DASHX5 = '-----' RN = '\r\n' RNRN = '\r\n\r\n' CLEARSIGN_MSG_TYPE_MARKER = 'PEERCOIN SIGNED MESSAGE' BITCOIN_SIG_TYPE_MARKER = 'PEERCOIN SIGNATURE' BASE64_MSG_TYPE_MARKER = 'PEERCOIN MESSAGE' BITCOIN_ARMORY_COMMENT = 'Comment: Signed by Peercoin Armory v' +\ getVersionString(BTCARMORY_VERSION, 3) class UnknownSigBlockType(Exception): pass def randomk(): # Using Crypto++ CSPRNG instead of python's sbdRandK = CppBlockUtils.SecureBinaryData().GenerateRandom(32) hexRandK = sbdRandK.toBinStr().encode('hex_codec') return int(hexRandK, 16) # Common constants/functions for Bitcoin def hash_160_to_bc_address(h160, addrtype=0): vh160 = chr(addrtype) + h160 h = Hash(vh160) addr = vh160 + h[0:4] return b58encode(addr)