Example #1
0
   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()
Example #2
0
    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()
Example #3
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 = '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):
Example #4
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)