Перейти к содержимому

FID

fid — это число, которое идентифицирует аккаунт Farcaster. Каждое сообщение несёт fid, от имени которого оно говорит, и каждое сообщение должно быть подписано ключом, зарегистрированным на этот fid.

fid регистрируются в контракте IdRegistry в OP Mainnet. Адрес Ethereum, на который зарегистрирован fid, — это его custody-адрес, и тот, у кого есть приватный ключ этого адреса, управляет аккаунтом: он может добавлять и удалять ключи, которые подписывают сообщения, и переносить fid на другой адрес. Seed-фраза содержит такие ключи; casty выводит из неё custody-адрес с индексом --address-index, по умолчанию 0.

casty берёт адрес и интерфейс контракта из @farcaster/core; ничего из этого не вписано в сам casty.

Ноды Snapchain индексируют события IdRegistry. casty init спрашивает вашу ноду о последнем событии регистрации вашего custody-адреса (/v1/onChainIdRegistryEventByAddress) и берёт из него fid, так что Ethereum RPC не нужен.

У ноды, которая ещё синхронизируется, этого события может ещё не быть. Тогда casty init --op-rpc <url> вызывает IdRegistry.idOf(address) через RPC OP Mainnet по вашему выбору. Fid, перенесённый на другой адрес, не находится по старому.

Имя пользователя, или fname, существует отдельно от fid: нода хранит доказательства, которые связывают имя с fid. casty follow @name сначала спрашивает доказательство у вашей ноды и обращается к публичному реестру на fnames.farcaster.xyz, только если нода не знает имени. В ленте fid без известного имени показывается как !<fid>.

Fid может публиковать, только пока у него есть хранилище. casty init отказывается работать с fid без storage units; см. Аренда хранилища.

Примеры взяты из mock-ноды в репозитории. Её fid начинаются с 2000000001 и никому не принадлежат; тестовая seed-фраза владеет 2000000001.