Ну, вы не должны начинать учиться с просмотра чужого исходного кода.Единственный реальный способ узнать о программировании блокчейна - это взять отдельные проблемы и попытаться реализовать их самостоятельно в минимальных примерах.
Вы можете начать с кодирования каждого из них по отдельности в своем собственном примере приложения:
- Структуры данных блокчейна и их сериализация (сеть / диск)
- Хранение данных блока в циклическом двоичном двоичном файле на диске, содержащем сериализованные блоки, и в то же время наличие некоторой индексированной базы данных для поискаup хэши блоков и получение их дисковой позиции блока, когда блок должен быть «загружен» в память.
- Сетевой компонент P2P, где вы организуете свою неструктурированную среду P2P при условии, что большинство узлов будет иметьограничить входящее сокетное соединение или быть за NAT
- . В этом же контексте вы можете изучить асинхронное сетевое программирование и узнать, как правильно это сделать с помощью select () / epoll ()
- Доказательство работымеханизм масштабирования, который приходит с хешемцелевое значение в зависимости от времени, которое потребовалось для последних X блоков
- соединитель "доминирующей цепочки", где "преобладающая" цепочка выбирается из множества кандидатов на множественные цепочки (разветвление)
Когда вы закончите понимать эти первые простые строительные блоки, вы можете подумать о следующем шаге;фактические функции блокчейна, такие как поддержание баланса и перевод монет.