October 4

Canton Network

🪓 Telegram канал UTSA 🪓 Telegram чат UTSA

Web Twitter Dashboard

Details

Canton Network

Canton Network — это первая в мире блокчейн-сеть с поддержкой конфиденциальности и полной межоперабельностью, ориентированная на реальные, регулируемые активы

Её цель - создать безопасную инфраструктуру, где финансовые организации могут взаимодействовать напрямую, не теряя контроля над данными и соблюдая требования регуляторов

В основе экосистемы лежит Global Synchronizer - децентрализованный сервис, который обеспечивает синхронизацию и связь между независимыми блокчейнами внутри Canton Network. Он использует BFT-консенсус и управляется открытым сообществом независимых организаций, называемых Super Validators. Эти участники отвечают за надёжность, безопасность и порядок транзакций в сети


🧩 Валидаторы: основа работы сети

Помимо супер-валидаторов, важнейшую роль играют простые валидаторы — именно им и посвящён этот гайд

Validators - это участники, которые работают внутри Canton Network, проверяя транзакции, ведя учёт активности и обеспечивая связь между пользователями и приложениями

Каждый валидатор хранит только те данные, которые ему необходимы, и взаимодействует с другими узлами через синхронизаторы, что делает сеть масштабируемой и безопасной

Основные задачи валидатора:

  • Проверять транзакции и подтверждать их корректность;
  • Записывать активность и обеспечивать целостность данных;
  • Поддерживать стабильное соединение между пользователями и приложениями;
  • Участвовать в обновлениях и миграциях сети

Активность и стабильность узла напрямую влияют на вознаграждение валидатора. Сеть поощряет тех, кто работает надёжно и постоянно обрабатывает трафик - через механизм minting rewards и liveness incentives


💰 Canton Coin и стимулы сети

Нативный токен Canton Coin используется для стимулирования участников сети. Он обеспечивает баланс между использованием и эмиссией - токены сжигаются при оплате комиссий и создаются вновь как вознаграждение активным валидаторам

Таким образом, чем активнее используется сеть, тем устойчивее становится экономика Canton Network.


Сеть Canton создаёт фундамент для децентрализованной, но регулируемой финансовой инфраструктуры нового поколения

Здесь роль валидаторов особенно значима - именно они обеспечивают надёжность и живучесть экосистемы, формируя её устойчивость и доверие


💰 Инвестиции

Проект уже получил косвенные инвестиции около $400 млн от топовых (Tier 1) фондов - источник


⚠️ Важно

Данный гайд описывает общие условия и принципы установки ноды Canton Network

Подача заявки на валидатора

Воспользуйтесь формой ниже, если Вы хотите настроить свою собственную ноду в качестве оператора, заявка будет отправлена в Комитет по токеномике для рассмотрения. Процесс занимает примерно 2 недели

🔗 https://sync.global/validator-request/

Для подачи заявки нельзя использовать бесплатную почту - воспользуйтесь собственной почтой на собственном домене

Более подробно с процессом развертывания валидатора Вы можете ознакомиться в данной статье - https://docs.dev.sync.global/validator_operator/validator_onboarding.html

Подготовка сервера

# обновляем репозитории
apt update && apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

File2Ban - подробнее здесь и здесь

# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y && \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local && \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 <ip>
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban && systemctl disable fail2ban

Устанавливаем docker + docker-compose

# https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-ru
apt update && \
apt install apt-transport-https ca-certificates curl software-properties-common -y && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" && \
apt update && \
apt-cache policy docker-ce && \
sudo apt install docker-ce -y && \
docker --version
# ручная установка docker-compose https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04-ru
# проверяем версию https://github.com/docker/compose/releases и подставляем в команду установки
curl -L "https://github.com/docker/compose/releases/download/v2.10.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

# проверить версию
docker-compose --version

Новая установка ноды

Важно: развертывание по умолчанию через docker-compose крайне небезопасно, поэтому позаботьтесь о том, чтобы только Вы могли заходить на свой кошелек http://wallet.localhost/

В случае если Вы оставите порты открытыми, то любой сможет зайти на Ваш кошелек зная Ваш IP адрес. Пожалуйста создаете токен auth или закройте порты в docker!!!

Создаем необходимые каталоги. Для каждой новой версии мы будем использовать новый каталог

mkdir -p ~/.canton
mkdir -p ~/.canton/0.4.19
cd ~/.canton/0.4.19

Скачиваем архив с docker-compose

wget https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.4.19/0.4.19_splice-node.tar.gz
tar xzvf 0.4.19_splice-node.tar.gz
cd ~/.canton/0.4.19/splice-node/docker-compose/validator

Явно указываем версию для правильной сборки

export IMAGE_TAG=0.4.19

Для запуска ноды нам необходимо получить токен доступа. Для Devnet мы можем получить его самостоятельно, для Testnet и Mainnet нам необходимо получить его у спонсора

Получаем токен для DEVNET (действует 1 час)
# при первом включении используем его - при дальнейших запусках удаляем токен и оставляем -o ""

curl -X POST https://sv.sv-1.dev.global.canton.network.sync.global/api/sv/v0/devnet/onboard/validator/prepare

Запускаем ноду

./start.sh -s "<SPONSOR_SV_URL>" -o "<ONBOARDING_SECRET>" -p "<party_hint>" -m "<MIGRATION_ID>" -w

Где:

После успешного запуска Вы можете проверить логи

cd /root/.canton/0.4.19/splice-node/docker-compose/validator
docker compose logs -f validator

Обратите внимание, что валидатор можно остановить с помощью команды ./stop.sh и перезапустить с помощью той же команды start.sh, как указано выше. При последующих вызовах токен можно не указывать и оставить поле пустым, но флаг -o по-прежнему обязателен, поэтому необходимо указать аргумент -o ""

Полезные команды

Посмотреть логи

cd ~/.canton/0.4.19/splice-node/docker-compose/validator
docker compose logs -f validator

Остановить ноду

cd ~/.canton/0.4.19/splice-node/docker-compose/validator
./stop.sh

Запустить ноду повторно

cd ~/.canton/0.4.19/splice-node/docker-compose/validator
./start.sh -s "https://sv.sv-1.dev.global.canton.network.sync.global" -o "" -p "

Проверить приняли ли IP супервалидаторы для Devnet

(set -o pipefail
CURL='curl -fsS -m 5 --connect-timeout 5'
for url in $($CURL https://scan.sv-1.dev.global.canton.network.sync.global/api/scan/v0/scans | jq -r '.scans[].scans[].publicUrl'); do
  echo -n "$url: "
  $CURL "$url"/api/scan/version | jq -r '.version'
done)

Проверить приняли ли IP супервалидаторы для Mainnet

(set -o pipefail
CURL='curl -fsS -m 5 --connect-timeout 5'
for url in $($CURL https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/scans | jq -r '.scans[].scans[].publicUrl'); do
  echo -n "$url: "
  $CURL "$url"/api/scan/version | jq -r '.version'
done)

Пример обновления. Перед обновлением обязательно делайте резервные копии

# останавливаем ноду
cd ~/.canton/0.4.18/splice-node/docker-compose/validator
./stop.sh

# создаем отдельный каталог
mkdir -p ~/.canton/0.4.19
cd ~/.canton/0.4.19

# скачиваем архив
wget https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.4.19/0.4.19_splice-node.tar.gz
tar xzvf 0.4.19_splice-node.tar.gz
cd ~/.canton/0.4.19/splice-node/docker-compose/validator

#экпортируем версию!!!
export IMAGE_TAG=0.4.19

# запускаем - -o "" оставляем пустыми (без токена), так как он вводится только 1 раз
# ./start.sh -s "<SPONSOR_SV_URL>" -o "<ONBOARDING_SECRET>" -p "<party_hint>" -m "<MIGRATION_ID>" -w

# посмотреть логи
cd ~/.canton/0.4.19/splice-node/docker-compose/validator
docker compose logs -f validator
Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq