Основные понятия
Эти термины пришли из Internet Computer, а не из брендинга Rabbithole. Rabbithole использует их в продуктовой документации, поэтому эта страница показывает, как термины платформы связаны с частями приложения.
Канонические определения смотрите в глоссарии Internet Computer.
Internet Computer
Internet Computer — децентрализованная сеть для приложений, которые работают прямо on-chain. В отличие от блокчейнов, которые в основном используются как расчётный слой, Internet Computer может размещать серверную логику, состояние и веб-доступные канистры в одной среде.
Rabbithole использует её как слой для всего продукта: фронтенда основного приложения, основной серверной канистры, канистр хранилища, которые создаются для пользователей, и хранения или перемещения пользовательских средств из других сетей через Chain Fusion.
Канистра
Канистра — это смарт-контрактная единица Internet Computer. Она объединяет код и состояние, работает в сети и доступна через интернет.
В архитектуре Rabbithole основная серверная часть — это канистра. Каждое пользовательское хранилище тоже является канистрой. Канистра хранилища содержит записи о файлах, права доступа и, в зависимости от режима хранения, байты файлов.
Principal
Principal — это IC-идентификатор того, кто может вызывать канистры. Он может представлять пользователя, другую канистру или анонимного вызывающего.
В документации Rabbithole чаще всего имеется в виду пользовательский principal: идентификатор, через который вы владеете хранилищем, вызываете канистры и получаете права доступа.
Internet Identity
Internet Identity — встроенная система аутентификации Internet Computer. Она позволяет входить через ключи доступа (passkeys) или поддерживаемые OpenID-аккаунты без отдельного пароля Rabbithole.
Для одного и того же пользователя Internet Identity выдаёт отдельный principal для каждого веб-адреса приложения. Это помогает приложениям не связывать ваши аккаунты через один глобальный идентификатор. В Rabbithole этот слой идентичности используется браузером, чтобы вызывать канистры, владеть хранилищем и запрашивать доступ к зашифрованным файлам.
Технические детали описаны в гайде Internet Identity.
Контроллер
Контроллер имеет административные права над канистрой. Контроллер может обновить код канистры, изменить настройки или удалить канистру.
Для хранилища Rabbithole это важно во время настройки и обновлений. Rabbithole может временно нуждаться в правах контроллера, пока создаёт или обновляет вашу канистру хранилища. После успешной передачи контроля целевое состояние такое: канистрой управляете вы.
Циклы
Циклы — это единица оплаты ресурсов в Internet Computer: вычислений, памяти, хранения и сетевого трафика. У каждой канистры есть счёт циклов, и использованные ресурсы списываются с этого счёта.
В Rabbithole циклы поддерживают работу вашей канистры хранилища. Стоимость настройки покрывает создание канистры и стартовый баланс циклов. Позже канистре может понадобиться пополнение, чтобы продолжать работать.
Как это связано
Когда вы создаёте хранилище, Rabbithole разворачивает канистру хранилища и пополняет её циклами. Вы входите через Internet Identity, а Rabbithole получает principal для вашей сессии. После передачи контроля этот principal становится идентификатором владельца, который Rabbithole использует для вашей канистры хранилища.
Браузер шифрует файлы до загрузки. Подробный поток ключей описан на странице о шифровании.