-
Notifications
You must be signed in to change notification settings - Fork 8
Тестирование
c-darwin edited this page Mar 6, 2016
·
2 revisions
- Определение проблемы.
1.1. Собираем блокчейн с нуля
./dcoin-go -testRollBack=1
1.2. Делаем rollback
./dcoin-go -rollbackToBlockId=1 -testRollBack=1
1.3. Анализируем результат:
- роллбек выдал ошибку
- роллбек дошел до 1-го блока, но есть >>ALERT<<
- роллбек выдал ошибку
- Если есть ошибка или alert, то выполняем:
./dcoin-go -endBlockId=150000 -testRollBack=1
-endBlockId устанавливаем равным текущему максимальному блоку деленному на 2
- Делаем бэкап litedb.db
- ./dcoin-go -rollbackToBlockId=1 -testRollBack=1
Если есть ошибка или alert, то выполняем:
./dcoin-go -endBlockId=75000 -testRollBack=1
Если нет ошибки или алерта, то используем бэкап litedb.db и выполняем
./dcoin-go -startBlockId=149999 -endBlockId=225000 -testRollBack=1
п 3 и 4 повторяем до тех пор, пока не будет обнаружен блок, вызывающий ошибку/алерт
Если в процессе обработки блокчейна блоки начинаю собираться с нуля, то нужно найти баг при помощи:
cat dclog.txt | grep "(dcparser.(*Parser)" -a
cat dclog.txt | grep "infoBlockRestart" -a