Как работает время сети?

Я видел , как узлы собирают данные о времени сети, но как они применяются в блочной цепочке?

Все ли метки времени, подписанные цифрой и включены в блок, как доказательство?

3 голоса | спросил user5107 4 Jam1000000amSat, 04 Jan 2014 06:12:43 +040014 2014, 06:12:43

1 ответ


4

Во-первых, откуда берутся эти образцы времени: когда ваш клиент подключается к одноранговым узлам в сети, он обменивается сообщением version , Среди прочего это сообщение содержит текущую временную метку UTC у партнера. Затем ваш клиент вычисляет смещение между временем на своем сверстнике и его собственными часами. Сетевое время - это просто местная метка времени + медиана всех смещений ее сверстников. Таким образом, вы можете видеть, что у нас есть относительно простая попытка синхронизировать часы в сети, но в зависимости от выборки сверстников, с которыми вы подключаетесь, они все равно могут сильно различаться.

О соблюдении временных меток: очень мало мест, где временная метка отображается в связи между сверстниками , вероятно, единственное место, где оно фактически выполняется, находится в заголовке блока. Если одноранговый узел получает новый блок при синхронизации с сетью, а временная метка отличается более чем на 2 часа от локальной метки времени, он отменит блок как недействительный ( источник ). Идея этой проверки заключается в том, что клиент может попытаться исказить воспринимаемую трудность, наблюдаемую узлом, который синхронизируется с остальной частью сети.

ответил cdecker 4 Jpm1000000pmSat, 04 Jan 2014 15:00:13 +040014 2014, 15:00:13

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132