Здравствуйте,
Я хочу написать некоторое программное обеспечение для анализа / визуализации операций, выполняемых с Bitcoin.
Программное обеспечение Bitcoin является слишком сложным, а не простой в использовании двоичный формат желательно.
Этот простой двоичный формат будет объяснено ниже:
Файл состоит из последовательных байтов, хранящихся рядом друг с другом следующим образом:
Начиная с номером версии формата (это будет версия 1):
Версия uint16
Вслед за блоком (который представляет информацию от сделки-блок-цепи):
BlockNumber uint64
BlockYear uint8
BlockMonth uint8
BlockDay uint8
BlockHour uint8
BlockMinute uint8
BlockSecond uint8
Накладные анализ:
Размер в байтах BlockStructure = 6 байт + 8 байт = 14 байт
100 лет * 365,25 дней * 24 часа * 60 минут = 52596000 минут, 52.596.000 минут
52596000 делится в среднем на 10 минут на блок = 5259600 блоков в столетие, 5.259.600 блоков в столетие.
Накладные для выше структуры данных: 14 байт, умноженной 5259600 блоков в столетие = 73634400 байт накладных расходов в столетие, 73.634.400 байт накладных расходов в столетие.
73634400 байт, разделенные на 1024 для килобайта, деленного на другом 1024 мегабайт = 70.223236083984375 МБ или около 71 МБ.
Вслед за Bitcoin адреса, используемые в операциях:
BitcoinAddressSize uint16
BitcoinAddressCount uint32
BitcoinAddress0 uint8 х BitCountAddressSize
BitcoinAddress1 uint8 х BitCountAddressSize
BitcoinAddress2 uint8 х BitCountAddressSize
BitcoinAddress3 uint8 х BitCountAddressSize
BitcoinAddress4 uint8 х BitCountAddressSize
и т.д ... до:
BitcoinAddress (Count-1)
Далее следуют операции, которые используют индексы Bitcoin адреса сверху:
TransactionCount uint32
Transaction0FromBitcoinAddressIndex uint32
Transaction0ToBitcoinAddressIndex uint32
Transaction0Value uint64
Transaction1FromBitcoinAddressIndex uint32
Transaction1ToBitcoinAddressIndex uint32
Transaction1Value uint64
Transaction2FromBitcoinAddressIndex uint32
Transaction2ToBitcoinAddressIndex uint32
Transaction2Value uint64
Transaction3FromBitcoinAddressIndex uint32
Transaction3ToBitcoinAddressIndex uint32
Transaction3Value uint64
и т.д. до
Транзакция (Count-1)
Все числа в маленьком формате с обратным порядком байтов (в качестве используемых процессоров Intel).
Затем этот файл составлен из указанных выше блоков следующим образом:
Версия
блок
BitcoinAddresses
операции
блок
BitcoinAddresses
операции
блок
BitcoinAddresses
операции
блок
BitcoinAddresses
операции
блок
BitcoinAddresses
операции
И так далее...
Если Bitcoin разработчики заинтересованы в поддержке этого простой двоичный формата, то дайте мне знать, если вы будете программировать сам, или если вы хотите, чтобы я программировать простой в использовании класса C ++ для поддержки этого простого двоичного формата.
Я тогда обеспечить по крайней мере выходных функций, и, возможно, функции ввода, а также в случае, если другие хотят использовать его.
Что я должен был бы вам Bitcoin разработчикам сделать "извлекать информацию из сложных формата Bitcoin / баз данных" а также "направить его в этом простой в использовании двоичного формата" с помощью класса C ++.
Когда такая функция присутствует либо в Bitcoin клиента или внешнего инструмента, я могу начать мои попытки анализа / визуализации! = D
До свидания,
Skybuck.