def parseBlockHeader(blkHdrBinary):
   binunpack = BinaryUnpacker(blkHdrBinary)
   return BlockHeader(binunpack.get(UINT32),
                      binunpack.get(BINARY_CHUNK, 32),
                      binunpack.get(BINARY_CHUNK, 32),
                      binunpack.get(UINT32),
                      binunpack.get(UINT32),
                      binunpack.get(UINT32))
def getBlockHeight(txBinary):
   binunpack = BinaryUnpacker(txBinary)
   binunpack.advance(VERSION_LENGTH)
   txInCount = binunpack.get(VAR_INT)
   binunpack.advance(TX_OUT_HASH_LENGTH + TX_OUT_INDEX_LENGTH)
   sigScriptLength = binunpack.get(VAR_INT)
   binunpack.advance(1)
   height = binary_to_int(binunpack.get(BINARY_CHUNK, 3))
   return height
def getNextBlock(f):
   fileOffset = f.tell()
   f.seek(MAGIC_NUMBER_LENGTH, 1)
   blkSize = binary_to_int(f.read(BLOCK_SIZE_LENGTH), LITTLEENDIAN)
   result = None
   if blkSize > 0:
      binunpack = BinaryUnpacker(f.read(blkSize))
      blkHdrBinary = binunpack.get(BINARY_CHUNK, HEADER_LENGTH)
      txCount = binunpack.get(VAR_INT)
      txBinary = binunpack.get(BINARY_CHUNK, binunpack.getRemainingSize())
      blockHeight = getBlockHeight(txBinary)
      result = [sha256(sha256(blkHdrBinary)), blockHeight, fileOffset]
   else:
      f.seek(0,2)
   return result
Example #4
0
def getNextBlock(f):
    fileOffset = f.tell()
    f.seek(MAGIC_NUMBER_LENGTH, 1)
    blkSize = binary_to_int(f.read(BLOCK_SIZE_LENGTH), LITTLEENDIAN)
    result = None
    if blkSize > 0:
        binunpack = BinaryUnpacker(f.read(blkSize))
        blkHdrBinary = binunpack.get(BINARY_CHUNK, HEADER_LENGTH)
        txCount = binunpack.get(VAR_INT)
        txBinary = binunpack.get(BINARY_CHUNK, binunpack.getRemainingSize())
        blockHeight = getBlockHeight(txBinary)
        result = [sha256(sha256(blkHdrBinary)), blockHeight, fileOffset]
    else:
        f.seek(0, 2)
    return result
Example #5
0
def getBlockHeight(txBinary):
    binunpack = BinaryUnpacker(txBinary)
    binunpack.advance(VERSION_LENGTH)
    txInCount = binunpack.get(VAR_INT)
    binunpack.advance(TX_OUT_HASH_LENGTH + TX_OUT_INDEX_LENGTH)
    sigScriptLength = binunpack.get(VAR_INT)
    binunpack.advance(1)
    height = binary_to_int(binunpack.get(BINARY_CHUNK, 3))
    return height
Example #6
0
def parseBlockHeader(blkHdrBinary):
    binunpack = BinaryUnpacker(blkHdrBinary)
    return BlockHeader(binunpack.get(UINT32), binunpack.get(BINARY_CHUNK, 32),
                       binunpack.get(BINARY_CHUNK, 32), binunpack.get(UINT32),
                       binunpack.get(UINT32), binunpack.get(UINT32))