Я опубликовал работу, в ходе реорганизации источников здесь: https://github.com/gasteve/bitcoin
Вот файл README включены в этот коммит:
---------------
Это обязательство является реорганизация исходного кода Bitcoin (фактическая
поведение кода не было изменено). Основная цель этого
совершить это запросить ввод и анализ организации. Много работы
Осталось закончить реорганизацию, легко получить его строительство во всех
Поддерживаемые платформы и документировать его. Этот файл риого краткий
обзор работы до сих пор и что еще предстоит сделать.
Классы теперь организованы в свои собственные файлы исходного кода. Для каждого
класса есть заголовочный файл, который объявляет класс, файл заголовок,
имеют какие-либо встроенные или шаблонные определения и исходный файл для метода
Реализации. Для класса по имени "CFoo" (Имена классов всегда начинаются
с письмом "С" по соглашению), соответствующие исходные файлы были бы
быть названы:
CFoo.h - заголовок с объявлением класса
CFoo-inl.h - заголовок с инлайн и шаблонных методов (если таковые имеются)
CFoo.cpp - метод реализации
Первичный файл заголовок будет включать в себя файл рядного заголовка в конце
(Если таковой имеется). Файлы заголовков использовать типичные # IfNDef / # определить
шаблон использовать препроцессор, чтобы обеспечить любой данный заголовок класса
только обработано один раз компилятор. В заголовочных файлах, где
возможно, форвардные декларации ссылочных классов используются довольно
чем включая файл заголовка другого класса. Политика одного класса в
* .h, * -inl.h, * .cpp следуют за исключением классов исключений
(В настоящее время есть два, bignum_error и key_error). Исключение
классы следуют основной декларации класса в файле класса,
использует их. В нескольких случаях это приводит к сравнительно небольшим файлам
что один может возникнуть соблазн свернуть на другой файлы класса. в
интерес последовательности, даже эти небольшие классы были введены в
их собственный набор файлов (опять же, классы исключений являются единственным исключением
для этого правила).
В то время как классы были разделены на их собственные файлы и должны быть
очень чисто, не являющиеся объектно-ориентированные исходные файлы и заголовки еще
немного беспорядка и нуждается в очистке. Заголовочный файл включает заявление
должны быть сокращены.
Autotools были введены в процессе сборки, чтобы упростить
конфигурация и сделать файлы и обеспечить более автоматическую зависимость
управления (то есть включать в себя зависимости файлов автоматически отслеживаются
таким образом, что трогая данный файл заголовка будет только заставить перекомпиляции
именно те исходные файлы, которые включают его, прямо или косвенно).
Autotools следует также включить один набор конфигурации и сделать файлы
быть использованы на разных платформах, но это еще не тот случай. Использование
Autotools также позволит распределения исходного кода, которые будут построены (сделать
расстояние) и включить упаковку для инструментов популярной управления пакетами (оборотов в минуту,
порты, кв, и т.д.).
На данный момент, этот код только был составлен на Mac OSX. к
успешная компиляция, вам необходимо следовать инструкциям
здания из главной ветви, чтобы собрать все зависимости (т.е.
BDB, WxWidgets и т.д.), а затем следует обычной Autotools подходу к
здание. Существует скрипт в этом каталоге для восстановления исчезнувшего
настроить сценарий и сделать файлы (autogen.sh). После запуска, что
сценарий, а затем запустить "./configure; делать" ("сделать установку" не поддерживается
все же). Как демон и полный графический интерфейс пользователя был успешно скомпилирован.
Остающаяся работа (в грубом порядке приоритета):
1. Синхронизация с руководителем ведущего Bitcoin исходного кода филиала (это
код основан на 0.3.20.2)
2. Организация, не входящих в класс источников на основе путем группирования функций, связанных с
вместе и переместились исходные файлы в подкаталогах (вероятно SUBDIRS
будет пэр, графический интерфейс, интерфейс командной строки, бумажник, шахтер, и общий) <--- Я мог бы использовать
предложения, по которым функции / классы принадлежат, в каком из этих логических
пакеты
3. Очистите источники и заголовки на основе не класс и заголовок сливового
файл включает в себя
4. Отказ от использования -DGUI для построения графического интерфейса пользователя
5. Вымойте комментарии & заявления об авторских правах и т.д.
6. Сделайте компилируются чисто на всех платформах