Синхронизация времени NTP.
Синхронизация времени является важной задачей, хотя не многие задумывались об этом. Ну что плохого в убежавшем на сервере времени? А знаете ли вы, что многие проблемы с часами влияют на протоколы, связанные с криптографией? По этой причине в Active Directory разница в часах более 5 минут будет приводить к проблемам аутентификации Kerberos.
Часовые уровни. Strata.
Чтобы понять устройство NTP следует знать про концепцию strata или stratum. Авторитетные источники времени, такие как спутники GPS, цезиевые атомные часы, радио волны WWVB — всё это stratum 0. Они авторитетны на том основании, что у них есть некоторый способ поддержания высокоточного хронометража. Можно, конечно, воспользоваться обычными кварцевыми часами, но зная, что за месяц с ними легко потерять 15 секунд, то лучше их не использовать в качестве мерила времени. Stratum 0 это когда секунда не потеряется за 300 000 лет!
Компьютеры, которые напрямую (не по сети!) берут время у stratum 0 — это stratum 1. Так как всегда есть задержки из-за передачи сигнала и затраты на установку времени, то компьютеры stratum 1 не так точны как stratum 0, но в реальной жизни различие достигает пару микросекунд (1 мкс = 10 -6 с), что вполне допустимое отклонение.
Настройка и тестирование Stratum Bot на криптобирже Binance
Следующий уровень компьютеров, берущих время по сети у stratum 1 — это . барабанная дробь . интрига . stratum 2! Опять таки из-за различных задержек (сетевые точно), stratum 2 чуток отстаёт от stratum 1 и уж точно от stratum 0. На практике это разница от нескольких микросекунд (1 мкс = 10 -6 с) до нескольких миллисекунд (1 мс = 10 -3 с). Многие хотят синхронизироваться со слоем не дальше stratum 2.
Как понятно из схемы, stratum 4 берёт время у вышестоящего stratum 3. stratum 5 у stratum 4 и так далее. stratum 16 считается самым нижним слоем и время там считается несинхронизированным.
Чтобы синхронизировать время с помощью протокола NTP, следует сначала вручную выставить ваше время. Недопустима разница между вашим точным временем и показаниями ваших часов более 1000 секунд. Если используемый вами сервер времени врёт более 1000 миллисекунд (1 секунда), то он будет исключён из списка и будут использоваться другие вместо него. Данный механизм позволяет отсеивать плохие источники времени.
Клиент времени.
В файле /etc/ntp.conf для клиента важны строки Server. Их может быть несколько — до 10 штук!
Сколько добавлять? Следует иметь в виду:
- Если у вас только один сервер (одна строка server), то если данный сервер начнёт врать, то вы будете слепо следовать за ним. Если его время убежит на 5 секунд и вы убежите в след за ним.
- Если добавлено 2 сервера (2 строки server), то NTP пометит их обоих как false tickers. Если один из них будет врать, то NTP не может понять кто врёт, так как нет кворума.
- Если добавлено 3 и более сервера времени, то можно вычислить одного вруна false tickers. Если серверов времени 5 или 6, то можно найти 2 вруна false tickers. Если серверов 7 или 8, то 3 false tickers. Если серверов 9 и 10, то 4 false tickers.
Проект NTP Pool.
Есть такой проект NTP Pool по адресу которого pool.ntp.org/zone/ru/ можно найти рекомендованные для русских пользователей сервера времени.
Запустил на 300$ бота для Binance.
server 0.ru.pool.ntp.org
server 1.ru.pool.ntp.org
server 2.ru.pool.ntp.org
server 3.ru.pool.ntp.org
Такие операционные системы, как Debian и Ubuntu, предлагают пользователям свои сервера времени.
server 0.debian.pool.ntp.org
server 1.debian.pool.ntp.org
server 2.debian.pool.ntp.org
server 3.debian.pool.ntp.org
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
Если вызвать на вашем Linux компьютере, который использует NTP, команду ntpq -pn
remote refid st t when poll reach delay offset jitter ============================================================================== +93.180.6.3 77.37.134.150 2 u 62 1024 377 53.658 -0.877 1.174 +85.21.78.23 193.190.230.65 2 u 1027 1024 377 54.651 0.167 1.531 *62.173.138.130 89.109.251.24 2 u 940 1024 377 52.796 -0.143 1.001 +91.206.16.3 194.190.168.1 2 u 258 1024 377 93.882 -0.680 2.196 -91.189.94.4 193.79.237.14 2 u 596 1024 377 100.219 1.562 1.482
О чём говорят названия столбцов:
- remote — удалённые сервера, с которыми вы синхронизируете время.
- refid — вышестоящий stratum для данного сервера.
- st — уровень stratum. От 0 (нам недоступно) до 16 (нам не желательно). Идеально — 2.
- t — тип соединения. «u» — unicast или manycast, «b» — broadcast или multicast, «l» local reference clock, «s» — симметричный узел, «A» — manycast сервер, «B» — broadcast server, «M» — multicast сервер.
- when — время, когда последний раз сервер ответил нам. Параметр отображает число в секундах, но может в минутах, если число с m или в часах, если h.
- poll — частота опроса. Минимум 16 секунд, максимум 32 часа. Число должно быть 2 n . Обычно в данном параметре наблюдается или 64 секунды или 1024.
- reach — 8 бит октета, показывающий статус общения с удалённым сервером времени: успешный или сбойный. Если биты установлены — то успешно, иначе — сбой. Значение 377 — бинарно это 0000 0000 1111 1111.
- delay — значение в миллисекундах показывает время между отправкой и получения ответа (round trip time — RTT).
- offset — смещение в миллисекундах между вами и серверами времени. Может быть положительным и отрицательным числом.
- jitter — абсолютное значение в миллисекундах с указанием среднеквадратичного отклонения вашего смещения.
Перед IP адресом NTP сервера есть символ — это tally code. Виды tally code:
- » » — отброшен как недопустимый. Например, нет связи с ним или он в оффлайн, он слишком высокого ранга и не обслуживает таких как вы.
- «x» — отброшен алгоритмом «пересечения» (intersection algorithm). Алгоритм пересечения подготавливает список кандидатов партнеров, могущих стать источниками синхронизации и вычисляет доверительный интервал для каждого из них.
- «.» — отброшен из-за переполнения таблицы.
- «-» — отброшен алгоритмом кластеризации (cluster algorithm). Алгоритм кластеризации сортирует список кандидатов по кодам слоя и расстояния синхронизации.
- «+» — сервер включён алгоритмом «комбинирования» (combine algorithm). Этот сервер — отличный кандидат если текущий сервер времени начнёт отказывать вам.
- «#» — сервер является отличным альтернативным сервером времени. Сервер с # можно увидеть только если у вас более 10 записей server в /etc/ntp.conf
- «*» — текущий сервер времени. Его показания используются для синхронизации ваших часов.
- «o» — сервер Pulse per second (PPS). Обычно это означает, что данный сервер времени использует источники времени типа GPS спутников и другие сигналы точного времени. Если рисуется о, то другие типы tally code уже отображаться не будут.
В поле refid могут быть следующие значения:
- IP адрес — адрес удалённого сервера времени.
- .ACST.- NTP manycast сервер.
- .ACTS.- Automated Computer Time Service из American National Institute of Standards and Technology.
- .AUTH.- ошибка аутентификации.
- .AUTO.- ошибка в последовательностях Autokey.
- .BCST.- NTP broadcast сервер.
- .CHU.- Shortwave radio receiver от станции CHU в Ottawa, Ontario, Canada.
- .CRYPT.- ошибка протокола Autokey.
- .DCFx.- LF radio receiver от станции DCF77 в Mainflingen, Germany.
- .DENY.- В доступе отказано.
- .GAL.- European Galileo satellite receiver.
- .GOES.- American Geostationary Operational Environmental Satellite receiver.
- .GPS.- American Global Positioning System receiver.
- .HBG.- LF radio receiver от станции HBG в Prangins, Switzerland.
- .INIT.- Peer association initialized.
- .IRIG.- Inter Range Instrumentation Group time code.
- .JJY.- LF radio receiver от станции JJY в Mount Otakadoya, рядом с Fukushima или Mount Hagane на острове Kyushu, Japan.
- .LFx.- Обычный LF radio receiver.
- .LOCL.- локальные часы хоста.
- .LORC.- LF radio receiver от Long Range Navigation (LORAN-C).
- .MCST.- NTP multicast сервер.
- .MSF.- Anthorn Radio Station рядом с Anthorn, Cumbria.
- .NIST.- American National Institute of Standards and Technology.
- .PPS.- часы Pulse per second.
- .PTB.- Physikalisch-Technische Bundesanstalt от Brunswick и Berlin, Germany.
- .RATE.- превышен порог опроса NTP.
- .STEP.- изменение шага NTP. Смещение offset менее 1000 миллисекунд, но более 125 миллисекунд.
- .TDF.- LF radio receiver от станции TéléDiffusion de France в Allouis, France.
- .TIME.- NTP association timeout.
- .USNO.- United States Naval Observatory.
- .WWV.- HF radio receiver от станции WWV в Fort Collins, Colorado, United States.
- .WWVB.- LF radio receiver от станции WWVB в Fort Collins, Colorado, United States.
- .WWVH.- HF radio receiver от станции WWVH в Kekaha, на острове Kauai на Hawaii, United States.
Рекомендации для клиента серверов времени.
Во-первых, избавьтесь от мысли как бы получить время от stratum 1, дескать они ближе всех к точному времени. Они то ближе к точнейшему времени на планете, только сами они перегружены и у них высокие задержки RTT для обычных серверов. Лучше найти нормальный stratum 2 и не переживать по этому поводу. Не забывайте, что речь идёт о микросекундах и миллисекундах, что в обычной жизни — вполне достаточно.
Во-вторых, помните, что подключение к ближайшему серверу времени не всегда идеальный вариант. Важнее не территориальная близость, а уровень stratum. Проект NTP Pool публикует список серверов только уровня stratum 1 и stratum 2 и лучше взять до 10 серверов времени из данного списка, что будет просто замечательно.
В-третьих, если вы простой домашний пользователь-клиент, то рекомендованные вам сервера в вашей операционной системе будут идеальным вариантом, не требующим лишних телодвижений.
Для крупных контор, лучшим вариантом будет поднятие своего сервера времени для рабочих компьютеров. Данный сервер будет получать точное время от серверов времени в Интернете и предоставлять его локальным компьютерам. На серверах Debian и Ubuntu достаточно раскомментировать строку
restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap
в конфигурационном файле демона ntpd — /etc/ntp.conf
Пользователи из сети 192.168/16 будут иметь возможность брать с вашего сервера показания точнейших часов. Для внутренних серверов на базе Linux, которые не являются серверами времени и занимаются своими задачами, вместо запуска демона ntpd в клиентском режиме — вполне достаточно указать в файле /etc/cron.daily/syncntpd. Рекомендуется прочесть различия между ntpdate и ntp и решить для себя вопрос.
#!/bin/sh
/usr/sbin/ntpdate IP.адрес.вашего.сервера > /dev/null 2>http://vasilisc.com/time-server-ntp» target=»_blank»]vasilisc.com[/mask_link]
1. Главное меню
После начальной заставки появляется меню, содержащее 5 пунктов:
| | Пароль | | Архив | | Выход | |
Первые три пункта меню — основные пульты системы.
По своей сути пульты являются редакторами соответствующих информационных структур. На пульте 1 создаются и редактируются имиджи и их библиотеки, на пульте 2 создаются схемы из имиджей, на пульте 3 осуществляется редактирование условий существования схем и параметров их расчета, а также сам расчет.
«ПАРОЛЬ» — Альтернатива (пишется с заглавной русской (!) буквы), вводится сразу после появления главного меню;
«АРХИВ» — для хранения и перезаписи имиджей, схем и библиотек, а также для выдачи информации о них. При создании схемы, библиотеки или имиджа пользователь присваивает им произвольное имя, которое на диск D записывается иначе. Чтобы определить какому имени соответствует данная схема, библиотека или имидж существует Справка или F1.
«ВЫХОД» — окончание работы, выход в главное меню.
2. ОСНОВНАЯ СТРУКТУРА ПУЛЬТА
Рабочее окно пульта делится на три поля:
Поле cодержит кнопки, необходимые для работы с имиджем или схемой, смены курсора, работы с библиотеками, т.е. команды по обработке поля 2
В поле 2 размещается сам объект редактирования. Поле 3 содержит кнопки, специфические для данной команды.
3. ПУНКТ «СОЗДАНИЕ ИМИДЖЕЙ» ГЛАВНОГО МЕНЮ
Имидж — это неделимый информационный объект, имеющий в своем составе различные формы представления информации. Он может представлять на схеме различные объекты или их части. Имиджи объединяются в библиотеки по предметному признаку. В нашем случае в качестве имиджей используют УГО (условно-графическое обозначение), БЛЭ. Их уравнения — реализуемая логическая функция.
Библиотеке имиджей, необходимых для построения схем ДУ мы присвоили имя «БЛЭ».
Имидж состоит из 4-х слоев:
1. «Картинка» — наглядное изображение имиджа размером 30 на 20 клеток, содержащее 16 цветов (применяется для условного изображения объектов).
2. «Уравнения» — математическое выражение законов, характеризующих свойства имиджа.
3. «Пояснения» — пояснительная строка к переменной имиджа (для комментариев к переменным или пояснения условий применения имиджа).
4. «Общий вид» — трехмерное изображение имиджа. В нашем случае не используется.
Эти четыре слоя взаимосвязаны и в схеме при манипуляции с имиджем неразделимы.
Поле 1 пульта содержит 3 группы кнопок :
1. Группа БИБЛИОТЕКА
Библиотека имиджей — архивное хранение созданных имиджей. Имеет пользовательское и DOS-кое имена. Пользователь работает только с именем (русским или латинским), которое он дал библиотеке при создании. Длина его не более 255 букв.
Кнопки (для работы встать курсором на нужную кнопку и нажать Enter):
Позволяет выбрать библиотеку для работы, просмотреть ее содержимое и считать из нее ранее записанный имидж. Отказаться от выбора можно, нажав Esc.
Позволяет создать новую библиотеку. Запрашивает у пользователя имя, по которому он будет с ней работать.
Позволяет удалить существующую библиотеку со всеми ее имиджами. Удаленная библиотека не восстанавливается. Будьте внимательны.
Источник: studfile.net
Моделирование в системе STRATUM-2000. Начальные значения переменных
Задание1: предположим, что в сосуде находится лед при температуре -10°С. Сосуд начинает нагреваться, постепенно лед тает и образуется вода, которая с течением времени закипает и полностью испаряется. Необходимо смоделировать этот процесс. Нагревание льда описывается по формуле: Q=m*cl, где Q – количество теплоты, m – масса льда, cl – удельная теплоемкость льда – 2400 Дж/кг*К. Плавление льда описывается по формуле: Q=m*l, где l – удельная теплота плавления – 3.35*10 5 Дж/кг. Нагревание воды описывается по следующей формуле:
Q=m*с, где с – удельная теплоемкость воды – 4190 Дж/кг*К. Переход воды из жидкого состояния в парообразное описывается по сле- дующей формуле: Q=m*r, где r – удельная теплота парообразования – 2.26*10 6 Дж/кг. Порядок выполнения работы.
Для моделирования нагревания льда , превращения его в воду, а затем в пар соберем экспериментальную установку: В центре схемы расположен имидж сосуда. Его математическая модель следующая:
Начальные значения переменных, которые используются в модели сосуда:
Из библиотеки UNIT.LIB выберите имидж GRAPHICSPACE и установите его на поле схемы.
Из библиотеки CONTROLS.LIB выберите имидж NUMBERVIEW и установите его на поле схемы 3 раза для отображения значений трех переменных: температуры, общей массы воды и льда, а также массы льда. Другими словами, переменные Value этих 3 имиджей связаны соответственно с переменными T, m и ice модели сосуда.
Из этой же библиотеки установите имидж VSLIDER , с помощью которого будет осуществляться регулировка подводимого тепла, а также имидж LAMP , который позволит реализовать сигнализацию о полном испарении воды. Переменная Value имиджа VSLIDER связана с переменной Q модели сосуда. Начальные значения переменных этого имиджа: min=0, max=40, Height=100.
Лампочка имиджа LAMP включается с помощью переменной light, которая связана с переменной s имиджа Lighter (расположен слева от LAMP). Математическая модель имиджа Lighter: S:=ed(0.01-value), а начальные значения переменных: S=0, value=1. Переменная Value имиджа Lighter связана с переменной Value имиджа NumberView, служащего для наблюдения за общей массой воды и льда. На схеме расположены также 2 осциллографа OSCSpace2D, служащие для наблюдения за изменением во времени температуры содержимого сосуда и количеством льда в нем. Имидж OSCSpace2D находится в библиотеке UNIT.LIB.
Снизу схемы проекта расположен имидж CurrentTime. Он содержит встроенную функцию Gettime(~hour,~min,~sec,~hund), которая считывает показания компьютерных часов и возвращает переменные, содержащие текущее время. Имидж CurrentTime связан по переменной ~sec с имиджем СoordX. Этот имидж с помощью переменной ~sec формирует ось времени для осциллографов.
То есть координаты оси Х осциллографа — это секунды реального времени. Предлагается следующая математическая модель имиджа CoordX: if(flag+~sec) if(~sec) x:=m+~sec flag:=1 else m:=m+60 flag:=0 endif else x:=m+~sec endif Haчальные значения всех переменных имиджа CoordX равны 0. Имидж CoordX связан по переменной Х с первым (левым) осциллографом, который также по переменной Х связан со вторым. Переменной Y для левого осциллографа является переменная Т модели сосуда ( то есть переменные Т и Y этих имиджей связаны между собой). Для правого осциллографа переменная Y связана с переменной ice модели сосуда . Haчальные значения всех переменных левого осциллографа:
Если переменная _enable=1, то осциллограф включен. То есть, измения значение переменной _enable, можно включать нужный осциллограф. Haчальные значения всех переменных правого осциллографа:
Результат работы правого осциллографа: Результат работы левого осциллографа: Задание 2: построение круговой двухмерной диаграммы
Постройте схему, отображающую двухмерную круговую диаграмму из 4 секторов (красный, зеленый, синий и желтый). С помощью управляторов проверьте работоспособность диаграммы.
Создайте новый проект. Поместите на главную схему имидж GraphicSpace. Создайте новый имидж (например Diagram_2D) с текстом:
a := a1 + a2 + a3 + a4 if(a) x1 := (a1*2*PI) / ~a x2 := (a2*2*PI) / ~a x3 := (a3*2*PI) / ~a x4 := (a4*2*PI) / ~a b1 := x1 b2 := x1 + x2 b3 := x1 + x2 + x3 b4 := 2*pi if (x1+x2+x3+x4) c1 := «красный » + String(x1*100 / (x1 + x2 + x3 + x4)) + «%» c2 := «синий » + String(x2*100 / (x1 + x2 + x3 + x4 )) + «%» c3 := «зеленый » + String(x3*100 / (x1 + x2 + x3 + x4 )) + «%» c4 := «желтый » + String(x4*100 / (x1 + x2 + x3 + x4 )) + «%» endif endif
Источник: vunivere.ru
Майнинг-пул 2Miners добавил поддержку Stratum-протоколов, совместимых с ASIC
Рынок криптовалют находится на этапе роста: на выходных Биткоин прыгнул выше 10 тысяч долларов, а Эфириум продолжает держаться выше отметки в 200 долларов. На фоне этого интерес к индустрии вырастет: причём не только в отношении закупки монет, но и майнинга. Чтобы удовлетворить потребности владельцев майнинг-оборудования, пул 2Miners добавил поддержку Stratum-протоколов и нативных NiceHash-протоколов. Благодаря этому добыча криптовалют будет более эффективной.
Что такое протокол сети криптовалюты
Как вы наверняка знаете из наших предыдущих материалов, пул — это специальное программное обеспечение, которое даёт своим майнерам особую “майнинг-задачку”, собирает её возможные решения и передаёт их ноде криптовалюты. Сложность конечной шары заметно ниже итогового решения блока: таким образом все майнеры могут делиться решениями с пулом и получать вознаграждения за проделанную работу в поисках нового правильного блока, который также называют валидным. Подробнее об этом читайте в отдельном материале о шарах в майнинге.
Опытный майнер. Источник: 2Биткоина
Определённый набор правил, в соответствии с которым работает программное обеспечение для майнеров, называет протоколом сети. Он описывает, какие команды могут быть отправлены от пула к майнеру и наоборот. При этом сюда также относятся ASIC-майнеры, ведь в контексте пула они работают так же, как и майнинг-фермы на видеокартах.
Что такое Stratum (стратум)
Изначально протокол взаимодействия с майнерами под названием Stratum существует со времён Биткоин-пулов. Поначалу после появления Эфириума и первого пула для добычи ETH используемый протокол был практически идентичен с RPC-протоколом ноды. Кстати, именно поэтому его называли EthProxy, ведь он напрямую передавал команды от майнеров к нодам. Однако со временем разработчики пулов решили адаптировать Stratum-протокол для майнинга Эфириума.
Майнер-профессионал. Источник: 2Биткоина
Но поскольку майнинг Эфириума отличается от добычи Биткоина, протокол нельзя использовать напролом. Из-за этого появились специальные версии программного обеспечения конкретно для майнинга ETH. Сначала они являлись чуть ли не полными клонами Stratum-протокола для Биткоина с крошечными изменениями, которые позволяли копать эфиры. Это именно та версия протокола, работающая на пуле 2Miners изначально.
Эра NiceHash-Stratum
С годами протокол стал более эффективным и оптимизированным для майнеров. Движущей силой в развитии Стратума стал NiceHash — платформа, которая позволяет покупать и продавать вычислительные мощности. Для нормальной работы протокола команда разработчиков создали его собственную модификацию и опубликовали его под названием EthereumStratum_NiceHash/1.0. Эта версия специализирована на добыче Эфириума и поэтому имеет более широкие возможности.
Процедура проверки пула
NiceHash по-прежнему поддерживает оригинальный протокол, однако для его запуска необходимы небольшие тонкости. Например, пароль майнера должен быть установлен как “#”: тогда платформа NiceHash поймёт, что пул использует старую версию протокола.
Особенности Stratum для ASIC
После релиза ASIC-майнеров для добычи Эфириума разработчики представили новую версию Stratum-протокола. Первыми ASIC с поддержкой алгоритма Ethash стали Bitmain Antminer E3 и Innosilicon A10, с которым мы уже знакомы. Поскольку ASIC-майнеры серьёзно зависят от своих прошивок, их платы поддерживали только правильные в их понимании имплементации протокола. Поэтому в отличие от того же NiceHash они не работали на майнинг-пулах без поддержки определённой версии Stratum-протокола.
Владельцы Innosilicon A10 связывались с представителями пула 2Miners и интересовались поддержкой данной модели. После нескольких подобных сообщений добавление поддержки ASIC-майнеров стало первоочередной задачей для пула. Решение было интересным, поскольку изначально 2Miners работал исключительно с видеокартами.
Innosilicon A10. Источник: Innosilicon
Разработчики пула 2Miners с помощью сотрудников Innosilicon создали две вариации EthereumStratum для майнеров пула.
После тщательного тестирования разработчики 2Miners с гордостью заявляют, что пул поддерживает каждую разновидность Stratum-протокола из трёх существующих. Это делает их совместимыми даже со старым программным обеспечением, хотя при этом обеспечивает дополнительную гибкость при выполнении ордеров NiceHash на пуле. Также нововведение гарантирует корректную работу ASIC-майнера Innosilicon A10 и других моделей. Если у вас есть ASIC, рекомендуем протестировать его на пуле 2Miners.
Источник: 2bitcoins.ru