SyavaSyava: тут и не поспоришь. Но есть шанс на изначально некачественную пайку, тогда реболл спасёт надолго. А вот если геометрия чипа или платы нарушена, тогда уже это временное решение.
pixik: "Не все работают в git как нужно"
Оффтоп, но это легко решается запретом пушей в мастер. Не прошёл ревью - твои проблемы, делай ребейз, оформляй всё правильно.
Без такого простого правила такие проекты, как linux, git, python да и куча других открытых проектов, давно бы уже загнулись.
pixik в дополнение к 7: если известна рабочая версия кода, то проходим по истории между рабочей версией и сломанной бинарным поиском. В git для этого есть bisect. В других CVS есть аналоги.
Фархад Ибрагимов: если уверены, что дело в отслоении чипа, то умельцы в духовке карты запекали. Но это на свой страх и риск, и потом всё равно отслоится.
Проще отдать в сервис на реболл. Выйдет не так уж и дорого, т.к. менять чип не придётся (если чип здоров).
"Но, один нюанс в случае, если используется GPT разметка диска."
Это если используется UEFI-загрузка. Если BIOS+GPT тогда необходимо создать раздел bios_grub.
alxsmrn: Подытожим.
Смещение первого блока мы знаем, оно всегда 0. В заголовке блока хранится его длина. Зная длину первого блока можно вычислить смещение второго блока. И т.д.
Но если нам нужно прочитать блок с номером 1000, необходимо прочитать все предыдущие блоки. Что бы этого не делать в LevelDB хранятся записи - какой блок где находится. Это просто лишь кэш для увеличения производительности.
bitcoin-core умеет строить индексы по транзакциям (включается через опцию) - так же делается проход по всему блобу, и сохраняются смещения каждой транзакции в LevelDB.
Сами блоки хранятся в бинарном виде, в том же, в каком рассылаются по сети (возможно с другим порядком байтов, не уверен).