Oracle voting idena что это
Idena - это блокчейн, работающий на основе доказательства личности, но без обмена и раскрытия персональных данных и выделенного центра идентификации. Основа блокчейна Idena - концепция доказательства личности на базе консенсуса Proof-of-Person во время сеанса одновременной идентификации.
Своими словами объясню, как это я понимаю, без супер умных слов и что нужно сделать чтобы получать награду:
1. Качаем кошелёк-ноду. Берём инвайт в группе тг, где угодно. Инвайт может выдать только уровень "человек", т.е. 3 + валидации.
сразу, что такое валидация:
Это подтверждение в сети, каждым участником, что он человек, а не бот. Валидация проходит в строго определённое время, одновременно для всех участников по всему миру. Во время валидации нужно решить вступительную задачу с флипами.
Флипы не берутся с вакуума, их создают пользователи (иногда ощущение, что обезьяны). И вы их так же будете создавать, всё просто.
на цифры в видео не смотрите, всё гораздо скромнее, но суть с видео Вы поймёте
2. Идену можно ставить на сервер для майнинга, либо майнить на своём ПК.
В сутки выходит около 3.5 монет IDNA, одна монета примерно 0.08 USD, т.е. в месяц примерно 100 монет принесёт майнинг,
это немного и видимо хватит на дешёвый сервер под идену. Но лучше искать халяву и получать например на интернет с этого.
Либо включать майнинг, когда юзаете ПК. Либо только проходить валидации. Довольно гибко и просто придумано.
Включать и выключать майнинг вы можете сами. Если майнинг включен, а вы выключили ПК или нет инета, будет штраф.
Но майнинг можно в обще не включать, а получать награды только за валидацию. Сразу немного запаситесь терпением,
после первой валидации не вся награда будет доступна. Со второй уже больше. А вот после третьей, уже самый сок и к тому
же сможете выдавать инвайты для новых участников. И если они будут успешно проходить валидацию, Вам за это награда.
Сам прошёл только одну валидацию. Плюс поставил майнинг на сберклоуд. Ноду можно ставить без графической оболочки.
Но так как я тупой, то поставил сервер на убунту с графической оболочкой. При этом ноду-кошелёк на ПК не куда не дел.
При валидации я за несколько часов просто запущу ноду на пк, пройду валидацию. А на сервере как работала, так и работает.
Таймер до следующей валидации, всю информацию. Саму программу. Вы сможете найти по ссылке на сайт. Там же увидите
группы тг, можете добавиться в тг ру группы и взять инвайт (только предварительно включите программу, пусть пройдёт синхронизация).
Синхронизация идёт довольно длительное время в первый раз. Врать не буду сколько, но наверно часов 6. Ресурсов прога не заметил, чтоб много ела. Работает эта история уже давно. Как понял года два или больше. С мипеда тоже многие знали, но хз почему не постят инфу.
По факту всё просто и интересно. Писанины в общем больше. Ну кому интересно, разберётесь.
В этой ветке предлагаю обсуждать установку на сервера. Обмениваться инвайтами. В общем по части идены вести диалог.
Сеть Idena может предоставить услугу голосования Оракулов любому, кто устанавливает достаточно высокую награду для оракулов и правильно формулирует вопрос.
Определите цель голосования
Механизм голосования Оракулов очень гибкий. Для того, чтобы ваше голосование прошло успешно, определите цель для получения услуги оракулов.
1. Голосование Оракулов за подтверждение факта
Оракулы могут засвидетельствовать свершившийся факт (свершившийся факт в реале). Такое голосование Оракулов может разблокировать монеты, заблокированные другим смарт-контрактом (например, OracleLock). Для правильного голосования подтверждаемый факт должен быть общеизвестным или подтвержденным несколькими источниками информации. Чтобы предотвратить возможную атаку на голосование, установлен высокий порог консенсуса среди избирателей для подтверждения фактов. Оракулы, голосующие против большинства, наказываются потерей ставки.
2. Оракулы голосуют за управление
Голосование Оракулов может разблокировать монеты, заблокированные другим смарт-контрактом (например, OracleLock, RefundableOracleLock), в зависимости от их субъективного мнения. В некоторых случаях такое голосование может не привести к консенсусу. Наказание оракулов за голосование вне большинства в таком голосовании не используется. Однако, если будет достигнут консенсус, то те оракулы, которые проголосовали большинством, будут вознаграждены. Если консенсус не был достигнут (не было принято решение), то все проголосовавшие оракулы будут вознаграждены, независимо от количества поданных голосов.
3. Голосование Оракулов простым опросом.
Оракулы могут голосовать за любой вариант. Награды будут выплачены каждому вне зависимости от результата голосования.
Установите параметры голосования
Параметры голосования не могут быть изменены после подачи голосования. Пожалуйста, проверьте параметры, рекомендованные для вашей цели голосования.
Рис. Рекомендуемые параметры для голосования Oracle
Подробнее о параметрах голосования читайте ниже.
Установите размер комитета и кворум
Размер комитета определяет, сколько оракулов будет выбрано в качестве участников голосования. Поскольку комитет выбирается случайным образом, он представляет собой репрезентативную выборку всей сети. Мы не рекомендуем устанавливать размер комитета менее 100 участников (если вы не хотите проводить лотерею).
Кворум
Если в ваш комитет будут отобраны неактивные пользователи, которые не участвуют в голосовании, получение результатов голосования может занять больше времени.
Чтобы голосование прошло успешно даже при меньшем количестве активных пользователей, вы можете определить кворум, необходимый для принятия решения. Например 20%. Это означает, что при размере комитета в 100 участников для определения результата голосования будет достаточно 20 голосов.
Если по окончании голосования кворум не набран, голосование может быть продлено. Будет выбран новый комитет, который предоставит недостающие голоса. Учитываются голоса предыдущего комитета.
Повторный отбор комитета после валидации
Если во время голосования происходит валидация, голосование автоматически приостанавливается при смене эпохи. Голосование необходимо продлить вручную, и будет выбран новый комитет. Продлить голосование может любой участник сети. Учитываются голоса предыдущего комитета.
Установите призовой фонд для оракулов
Чем выше призовой фонд для оракулов, тем больше вероятность того, что ваше голосование оракулы заметят первым.
Призовой фонд распределяется между всеми оракулами, получившими вознаграждение за участие в вашем голосовании. Чем больше размер комитета для голосования, тем меньше потенциальное вознаграждение для каждого оракула и тем меньше вероятность того, что ваше голосование Oracle будет обработано.
Если вы не установили достаточно большой призовой фонд, вы можете в любое время пополнить баланс адреса смарт-контракта для голосования Oracle, чтобы повысить ценность голосования для оракулов.
Минимальные призы для оракулов
Во избежание спама протоколом определяется минимально возможное вознаграждение для одного оракула в зависимости от размера комитета. Чем больше размер комитета, тем больше минимальное вознаграждение за оракула.
Вознаграждение владельца и распределение вознаграждений Oracle
Призовой фонд может быть предоставлен владельцем голосования, а также другими участниками. Вы можете установить комиссию владельца до 100%.
После голосования призовой фонд распределяется следующим образом:
- Депозиты оракулов, проголосовавших в большинстве, возвращаются.
- Депозиты оракулов, проголосовавших в меньшинстве, распределяются поровну между оракулами, проголосовавшими в большинстве.
- Владелец смарт-контракта получает указанный процент от оставшегося призового фонда.
- Остальные награды распределяются между оракулами, проголосовавшими в большинстве.
Вознаграждение владельца = (Баланс смарт контракта — Депозит для голосования * Количество голосов) * Комиссия владельца%
Стейк смарт-контракта
Когда создается смарт-контракт Оракулы голосуют за управление, доля смарт-контракта блокируется. 50% доли сжигается, а оставшиеся 50% возвращаются обратно владельцу смарт-контракта после окончания голосования и расторжения контракта.
Приложение I. Порядок голосования Оракулов
Статус голосования Oracle может быть изменен любым участником сети без вмешательства владельца в соответствии со схемой ниже.
Рис. Процесс голосования
Голосование Oracle может быть удалено через 7 дней после завершения и подсчета голосов. При расторжении договора возвращаются как 50% доли владельца, так и залог для голосования (независимо от результатов голосования). Предупреждение: после удаления смарт-контакта голосования Oracle другие смарт-контракты не могут получить результаты голосования.
Голосование Oracle может быть прекращено любым участником. Заинтересованные стороны (владельцы, избиратели и т. Д.) Должны следить за статусом голосования оракула:
- Если кворум не набран, кто-то должен продлить голосование. В противном случае он может быть прекращен.
- Если консенсус достигнут, кто-то должен продвигать распределение вознаграждений. В противном случае он может быть прекращен.
Приложение II. Справочник по параметрам голосования
Дата начала указывает дату, когда оракулы могут начать голосование. Обратите внимание, что он должен быть тщательно выбран для голосования по подтверждению фактов: к этой дате факт должен быть широко известен, чтобы оракулы могли его подтвердить.
Продолжительность голосования определяет, сколько времени вы даете оракулам на выполнение своей работы по голосованию. Короткий период может привести к отсутствию голосов. Однако, если это произойдет, голосование может быть продлено на следующий тур. Голосование можно продлевать несколько раз.
Размер комитета определяет возможное количество оракулов, которые могут участвовать в голосовании. Оракулы выбираются случайным образом из набора проверенных участников(verified, human).
Кворум определяет долю комитета, достаточную для определения результата голосования.
Депозит для голосования предотвращает случайное или злонамеренное голосование. Избиратель должен заблокировать свой залог для голосования, который возвращается при голосовании в большинстве и теряется при голосовании в меньшинстве. Чем выше размер залога для голосования, тем меньше вероятность злонамеренного голосования. Однако чрезмерно высокие суммы залога для голосования могут удерживать оракулов от голосования.
Минимальное вознаграждение для одного оракула определяется делением общего количества монет, депонированных на адрес смарт-контракта для голосования оракулов, на количество проголосовавших. Вы можете пополнить призовой фонд в любое время, отправив монеты на адрес смарт-контракта для голосования.
Минимальное вознаграждение для каждого оракула зависит от размера сети и размера комитета Oracle:
log (NetworkSize) ^ (log (Сommitee size Oracle / NetworkSize * 100) / 2)
Порог большинства определяет минимальную долю голосов, которую необходимо набрать за опцион, прежде чем он станет результатом голосования. Не может быть меньше 51%. 100% достичь практически невозможно. Опция «Недоступно» (N / A) используется для опросов, когда все избиратели должны получить вознаграждение.
Продолжительность подсчета определяет, сколько времени оракулы должны будут появиться в сети и раскрыть свои секретные голоса. Их узлы должны быть в сети в течение периода подсчета голосов, чтобы их голоса были подсчитаны.
Гонорар владельца определяет вознаграждение голосующего владельца Oracle. Вознаграждение рассчитывается следующим образом: (Баланс смарт-контракта - Депозит для голосования * Количество голосов) * Комиссия владельца%
Стейк смарт-контракта рассчитывается по протоколу следующим образом: 30,000 / NetworkSize. 50% доли сжигается, а оставшиеся 50% возвращаются обратно владельцу смарт-контракта после окончания голосования и расторжения контракта.
На сегодняшний день в мире криптовалют существует несколько алгоритмов защиты, такие как proof-of-work, proof-of-stake и т.д. В основе Idena лежит алгоритм proof-of-person (доказательство личности) который позволяет без предоставления каких либо конфиденциальных данных гарантировать, что владелец кошелька - ЧЕЛОВЕК, а не бот, нейросеть или так называемый "искусственный интелект".
Подробности о проекте можно узнать на оффициальном сайте или прочесть переведенный на русский язык FAQ.
Покупка/продажа монет IDNA на биржах hotbit.io, qtrade.io.
2. Запуск приложения Idena на Windows компьютере .
Что бы запустить приложение, нужно скачать его с сайта github оффициальной ветки разработчиков сайта и произвести установку.
3. Структура приложения Idena.
Вместе с запуском клиента, запускается нода, которая обеспечивает связь кошелька с блокчейном, получением и отправки данных.
Структурная схема взаимодействия клиента с нодой.
Сразу же после запуска генерируются все конфигурационные файлы и nodekey.
4. Значение файла nodekey и его расположение на диске.
Самым важным файлом в структуре файлов, генерирующихся нодой является файл nodekey. Nodekey - это файл, который содержит 64 байтный код, который является приватным ключом ноды (опредлеляет личность в блокчейне Idena). С помощью этого кода посредством определенных преобразований формируется адрес, который является публичным ключом.
Расположение файла:
%UserProfile%\AppData\Roaming\Idena\node\datadir\keystore\nodekey
ВАЖНО: Ни под каким предлогом не давайте никому этот файл и не публикуйте его содержимое в публичный доступ.
5. Запуск и настройка ноды на удаленном сервере.
Что бы исключить необходимость держать постоянно включенным компьютер при майнинге, а так же уменьшить вероятность сбоя при валидации на машинах со медленным интернетом, ноду можно перенести на удаленный сервер.
Структурная схема взаимодействия клиента с удаленной нодой через тунель Putty.
Проверенная конфигурация сервера для работы Idena:
1 CPU, 2 Gb ОЗУ, 20 Gb HDD(или SSD), Lan 100+ Мбит, CentOS
После приобретения сервера необходимо получить к нему доступ через консоль SSH. Для получения доступа будем использовать консольный клиент Putty.
Открываем клиент, в поле Host Name (or IP address) (1) вводим IP адрес предоставленный провайдером, в поле Saved Session (2) вводим произвольное имя сервера и нажимаем кнопку Save (3), после чего запись появится в списке.
Нажимаем Open и логинимся в ssh консоли. При вводе пароля отображения символов не происходит.
После успешного входа открывается ssh консоль сервера, которая готова для приема команд.
6. Установка ноды с помощью скрипта.
Первая команда - переход в домашний каталог пользователя:
Можно приступать к установке ноды:
В процессе установки скрипт задаст несколько вопросов:
Do you want reduce bandwidth usage and connected peer count down to 9? [Y,n] -
Опция полезна для машин с маленькой пропускной способностью и объемом диска меньше 25 Гб. Максимальное количество пиров уменьшается до 9 и уменьшается объем полученных/отправленных данных и интенсивность заполнения диска.
Do you want to change a service priority (niceness min=-20 max=20) [Default=0]
Выбор приоритета процесса idena-go. Минимальный приоритет -20, максимальный 20, по умолчанию 0. Для увереной работы ноды можно поставить значение 10. Желательно не ставить приоритет выше, чем 18, так как системные процессы в любом случае должны выполняться с большим приоритетом.
Do you want enable node autoupdate script? [Y,n] -
При подтверждении добавляется скрипт автообновления ноды. Проверка на необходимость обновления происходит один раз в час в *:00
По завершении работы скрипта выводится список команд для запуска/остановки/редактирования службы Idena
Что бы убедится в том, что нода запущена и работает, можно посмотреть лог файл, который пишет процесс idena-node:
Далее, при необходимости, меняем nodekey на свой:
Внимание! Редактор nano может быть не установлен по умолчанию в системе, поэтому нужно либо использовать другой редактор (mcedit, vi, kate и др.) либо установить nanо:
Это для Ubuntu. Для CentOS:
файл nodekey откроется в текстовом редакторе, нужно удалить существующий ключ, открыть nodekey из пункта 3 данного руководства, скопировать в буфер обмена и вставить в текстовый редактор nano (вставка происходит щелчком правой кнопки мыши). Далее нажать Ctrl+O для сохранения файла и Ctrl+X для выхода.
ВНИМАНИЕ: менять содержимое файла api.key нет необходимости, так как этот файл генерируется каждый раз при установке новой ноды. Это своего рода пароль для подключения. Не стоит делать его таким же, как и у локальной ноды. Если все же это необходимо, используйте команду:
Где YOUR_API_KEY - это ваш апи ключ.
Посмотреть содержимое файла api.key можно либо в выводе по окончании работы скрипта, либо командой
Для копирования в буфер обмена нужно аккуратно выделить апи ключ мышкой и нажать один раз правую кнопку мыши.
После замены nodekey, ноду необходимо перезагрузить. Сделать это можно командой:
или перегрузить весь сервер полностью командой:
Иногда(например, при установке нескольких нод на один сервер), требуется коррекция конфигурационного файла. Отредактировать конфиг можно командой:
7. Запуск и установка ноды вручную.
Для тех, кто доверяет только тому, что делает сам, описываю инструкцию по ручной установке ноды на сервер.
Во-первых, нужно залогинится на сервер и перейти в домашний каталог пользователя от чьего имени устанавливается нода. Предпочтительно располагать файлы в своем домашнем каталоге, что бы не было проблем с разрешениями и правами.
Переходим на траницу идены в github и находим самый свежий релиз idena-go. На момент написания статьи - это 0.22.1.
Копируем ссылку на файл idena-node-linux-0.22.1 и вставляем ее в терминале:
После скачивания файла нужно изменить права доступа, разрешив выполнение файла:
И переименовать его в что то более читаемое:
Разработчиками рекомендуется при запуске на сервере запускать ноду с кофигурационным файлом со следующим содержанием:
Создать его можно редактором nano. Сначала копируем в буфер обмена текст, открываем редактор:
> nano config.json
и вставляем содержимое буфера обмена щелчком правой кнопки в окно терминала.
Для сохранения файла используется комбинация клавиш Ctrl+O и для выхода из редактора комбинация Ctrl+X
Теперь все готово для начала работы ноды. Запустить ноду можно несколькими способами:
Запуск в скрине
далее, что бы выйти из скрина используем комбинацию Ctrl+A и нажимаем кнопку d.
Что бы залогинится снова в скрин вводим:
После первого запуска, нода создаст папку datadir в которой содержаться api.key и nodekey. для просмотра api.key ввести:
Если возникла необходимость редактировать файл api.key, не рекомендую исползовать текстовые редакторы, так как многие из них добавляют в конец символ переноса строки, благодаря чему пользователи имеют проблемы с подключением к ноде. Лучше для этих целей использовать коману echo:
Где YOUR_API_KEY - это ваш апи ключ.
Для редактирования nodekey ввести:
Особенность этого вида запуска ноды в том, что screen запускается только от пользователя root, следовательно root будет владельцем всех создаваемых файлов. При любом сбое нода вылетает, рестарт ноды возможен только в ручном режиме.
Запуск как службы
Для запуска ноды можно использовать systemctl. Для этого создаем файл:
[Unit]
Description=idena
[Service]
User=user
WorkingDirectory=/home/user/
ExecStart=/home/user/idena-go --config /home/user/config.json
Restart=always
RestartSec=3
LimitNOFILE=500000
[Install]
WantedBy=default.target
Если ваше имя пользователя user, то содержимое можно оставить без изменений, а если нет, то отредактировать.
User - это имя вашего пользователя, от которого будет запускаться сервис, WorkingDirectory - рабочая директория ноды, расположение файла idena-go,
ExecStart содержит путь к файлу idena-go и расположение файла config.json.
После сохранения файла Ctrl+O и выхода Ctrl+X требуется перегрузить список служб:
разрешить автозапуск и запустить службу:
sudo systemctl enable idena.service
sudo systemctl start idena.service
другие команды для работы с сервисом:
Кроме того, статистику работы idena-go можно смотреть через просмотр лога:
Аналогично запуску через скрин, после первого запуска, нода создаст папку datadir в которой содержаться api.key и nodekey. для просмотра api.key ввести:
Для редактирования nodekey ввести:
Отредактировав nodekey перезапускаем ноду:
Особенность данного типа запуска - автозапуск при сбое а так же при перезагрузке. Владелец всех создаваемых файлов - пользователь указанный в параметре User.
8. Настройка тунеля Putty и подключение клиента кошелька Idena к удаленной ноде.
Теперь нужно настроить тунель. Закрываем терминал ssh связи с сервером, если он открыт. Открываем Putty.
Выбираем сохраненную в 4 пункте этого руководства запись (1) и нажимаем кнопку Load (2)
Переходим в раскрывающийся список SSH (1)и выбираем Tunnel (2). Заполняем строки Source port: 9999 (3) и Destination: localhost:9009 (4) и нажимаем кнопку Add (5)
Еще раз возвращаемся на строку Session (1) и нажимаем кнопку Save (2)
9. Автообновление ноды, разбор скрипта
Рассмотрим один из вариантов скрипта для обновления ноды в автоматическом режиме.
Разберем код скрипта. В переменной GITPATH записан путь к исходникам, RELEASESPATH - неизменяемая часть пути к скомпилированным бинарникам, FILENAME - неизменяемая часть имени бинарника.
if [ -d idena-go ]; then
cd idena-go
git fetch
else
git clone $GITPATH
cd idena-go
В этой части кода проверяется наличие каталога idena-go, если он есть, то нужно обновить ветку командой git fetch, если его нет, то нужно скачать исходники заново:
Далее получаем тег последней версии:
и оставляем только информацию о версии:
Теперь в переменной LATESTTAG хранится номер самой свежей версии. Нужно сравнить его в версией нашего бинарника и если они не совпадают, нам требуется новый бинарник:
На всякий случай нужно предусмотреть отсутствие бинарника, если его нет, то переменная DAEMONVERSION будет пустой:
Присваеваем ей любое значение.
Далее идет сравнение и формирование ссылок:
if [ $DAEMONVERSION != $LATESTTAG ]; then FILENAME+=$LATESTTAG
проверка на всякий случай нет ли уже такого файла на диске:
и проверяем наличие скачанного файла: Если файла нет, значит бинарник еще не скомпилирован. Если файл есть, то первым делом добавляем разрешение на выполнение:
Перемещаем файл в рабочий каталог ноды:
Все, что теперь остается - это добавить задачу в cron для запуска скрипта каждые 1-2 часа:
В Oracle RAC (Real Application Cluster) процессы CSSD (Chronix Synchronization Daemon) контролируют работоспособность узлов RAC с использованием двух различных сигнальных систем: сигналов сети и сигналов диска. Здоровые узлы будут иметь непрерывные сетевые и дисковые сигналы, которыми обмениваются узлы. Перерыв в посылке сигналов указывает на возможность появления ошибок. Возможны несколько сценариев при отсутствии посылаемых сигналов:
- Сигнал сети есть, но сигнал диска отсутствует.
- Сигнал Диск есть, но сигнала сети нет.
- Оба сигнала и диска, и сети отсутствуют.
Кроме того, в конфигурации с множественными узлами существуют и другие возможные сценарии. Несколько возможных сценариев:
- Узлы разделены на N наборов узлов, обмениваясь данными внутри набора, но не с элементами в другом наборе.
- Только один узел поврежден.
Узлы с кворумом будут поддерживать активное членство в кластере, а другие узлы (ы) будут ограждены / перезагружены.
Я не могу обсуждать все возможные сценарии в записи в блоге, поэтому мы обсудим здесь двухнодовый кластер с одним Voting Disk (голосующим диском).
Voting Disk (голосующие диски) используются для контроля сигналов от диска. Предпочтительно иметь как минимум 3 голосующих диска или нечетное количество голосующих дисков, большее или равное 3.
Процесс CSSD и Voting Disk
Voting Disk (голосующие диски) разделяются между узлами и должны быть видимыми со всех узлов, это очевидно. Процесс CSSD - это многопоточный процесс, и поток процесса CSSD контролирует сигналы с диска. Сигнал с диска HB (Heart Beat) запланирован примерно каждую секунду, и этот поток проверяет сигналы с диска со всех активных узлов в кластере. Кроме того, другой поток CSSD отслеживает сигналы сети. Команда Pstack (Solaris) будет показывать потоки процесса CSSD.
Voting Disk при записи
Процесс CSSD в каждом узле RAC поддерживает его сигналы (ритм) в блоке, размер которого равен одному блоку в конкретной операционной системе. В виртуальной машине Solaris, которую я тестировал, размер блока ОС составляет 512 байт (в этом случае мы обсудим только Solaris). В дополнение к контролю своего собственного диска, процессы CSSD также контролируют блоки дисков, поддерживаемые процессами CSSD, запущенными в других узлах кластера.
Процесс CSSD записывает блок 512 на Voting Disk с определенным смещением. В записанном блоке есть область заголовка с именем узла. Например, в вызове pwrite ниже в примере кода имя узла solrac1 находится в первых нескольких байтах блока. Третья строка, напечатанная ниже, отслеживает счетчик сигналов. Этот счетчик сигнала похож на механизм SCN, «0F 9D02» - порядковый номер для первой записи.
Также обратите внимание, что смещение для вызова pwrite 0 × 04002400. узла solrac1 записывает 512-байтовый блок, начинающийся со смещения 0 × 04002400.
Следующий вызов записи из процесса CSSD локального узла показывает увеличение счетчика. Значение этого счетчика в строке 3 увеличилось с «0F 9D02» на «10 9D02». Я удаляю несколько строк, напечатанных для улучшения удобочитаемости. Таким образом, счетчик увеличивается для каждого сигнала.
Voting Disk при чтении
После успешной записи процесс CSSD также считывает блоки, поддерживаемые процессами CSSD, из других узлов. Например, на выходе pread ниже процесс CSSD в узле solrac1 считывает блок, поддерживаемый узлом CSSD @ solrac2, используя предварительный вызов. Третья строка в приведенном ниже листинге имеет значение последовательности «FB 9702» для узла solrac2. Каждому узлу используется другой порядковый номер.
Кроме того, обратите внимание, что смещение для предварительного запроса составляет 0 × 04002200, и это смещение отличается в запросах pread и pwrite. По сути, Node solrac2 записывает свой сигнал, начиная со смещения 0 × 04002200, а solrac1 записывает свой сигнал со смещением 0 × 04002400. Разница между этими двумя значениями смещения составляет ровно 0 × 200, что составляет 512 байт.
Следующее считывание со смещения 0 × 04002200 показывает, что solrac2 также увеличил счетчик с «FB 9702» до «FC 9702».
Заключение
По сути, поступающие сигналы с дисков сохраняются на Voting Disk (диске для голосования) с помощью процессов CSSD. Если блок диска не обновляется в течение короткого периода ожидания, этот узел считается нездоровым и может быть перезагружен в зависимости от кворума этого узла (или "отстрелян" вовсе во избежание возможных проблем).
Итак, Voting Disk не содержит никаких полезных данных. Итак, если у Вас "вылетел" диски для голосования, вы можете просто добавить его обратно (новый диск), не теряя при этом никаких данных. Но, конечно, суета с заменой Voting Disk может привести к перезагрузке узла. Если вы потеряете все диски для голосования, вам придется оставить демонов CRS, тогда только вы можете добавить новые Voting-диски.
Также резонен вопрос о производительности. Сколько вызовов ввода-вывода выполняется для этих дисков для голосования? По мере увеличения количества узлов увеличивается и увеличение кол-во операций ввода-вывода (чтения-записи). Для 2-х узлов RAC есть 2 чтения (CSSD также читает другой блок, не уверен, почему) и 2 записи в секунду. С 6 узлами в кластере он будет составлять 35 чтений и 6 записей в секунду. Начиная с версии Oracle RAC 11g, вы можете управлять Voting Disk в ASM.
Читайте также: