Для разработчиков / С чего начать
Pickle Chain для разработчиков
Ethereum Layer 2, который исполняет вашу транзакцию немедленно, возвращает подписанное предподтверждение и запечатывает вокруг неё обычный блок в формате Ethereum. Газ платится в ETH, а стандартной поверхности eth_* хватает MetaMask, Foundry и Hardhat.
Что это
Pickle работает на собственном секвенсере на Rust с revm, закреплённым на Cancun. Когда вы отправляете транзакцию, она исполняется сразу - eth_sendRawTransaction блокирует до появления результата, а не возвращает обещание результата, - и квитанция доступна в пределах целевого интервала мини-блока, около 10 мс. Блок в формате Ethereum, оборачивающий эти мини-блоки, запечатывается с целевым интервалом около 250 мс, и именно этот блок кошельки и обозреватели считают подтверждением.
С точки зрения инструментов сеть обычна там, где это важнее всего: chain ID 78270 в публичной тестовой сети, которую документирует этот справочник, ETH для газа, лимит газа блока 30 000 000, стандартный JSON-RPC и заголовки блоков в формате Cancun. forge, ethers, viem и MetaMask работают против неё. Она необычна там, где это тоже важно, и об этом отдельная страница, а не абзац здесь.
Что это не
Модель доверия, изложенная целиком
- Ordering: one sequencer orders every transaction. It can reorder and it can censor, and there is no forced-inclusion path from Ethereum.
- Liveness: if the sequencer stops, mini-blocks stop and the chain halts for new execution. Replicas continue to serve derived history. The sequencer key is held in an on-chain registry and can be rotated, effective the next block.
- Correctness: there are no fraud or validity proofs. Any replica can detect a divergence between the published data and the committed block hash, and halts when it does; nothing on-chain arbitrates it.
- Data: everything needed to rebuild the chain is on Ethereum or committed to from Ethereum. A user relies on the operator's honesty, plus the fact that the data needed to check it is public.
- Bridge: the messenger is a trusted key. It cannot forge or replay a message, but it can delay. Batcher and messenger keys are distinct, enforced at startup.
Pickle не представляет себя иначе, чем сетью с единственным оператором, и эта документация не публикует никаких цифр пропускной способности. Два числа каденции выше - целевые интервалы, которые старается выдерживать производитель блоков, - а не гарантии задержки и не утверждение о пропускной способности. Запечатывающий пропускает опоздавший тик вместо того, чтобы навёрстывать.
Это также не полная эквивалентность EVM, и расхождения опубликованы отдельной страницей, а не оставлены вам на обнаружение во время выполнения. Коротко: чтения состояния игнорируют параметр блока, архива нет, а error.data никогда не заполняется, так что ваша библиотека не сможет декодировать пользовательскую ошибку.
Как это устроено
Транзакция проходит три яруса, и понимание того, какой из них вы наблюдаете, - это большая часть того, что делает эту сеть читаемой:
- Исполнение - немедленное, синхронное с вашим RPC-вызовом. Revert известен уже здесь.
- Предподтверждение - мини-блок, подписанный секвенсером, с целевым интервалом около 10 мс. Ваша квитанция существует, а её
blockNumberвсё ещёnull. - Подтверждение - EVM-блок, с целевым интервалом около 250 мс. Теперь
blockNumberиblockHashзаполнены.
Финальность - четвёртое и отдельное событие: она наступает после того, как содержащий пакет рассчитан на Ethereum. Этот сайт не употребляет это слово ни для чего другого.
Ваш первый вызов
Публичная тестовая сеть отвечает на https://rpc.picklechain.xyz. Примеры везде пишут этот адрес как $RPC_URL, чтобы та же команда без изменений работала против вашего собственного узла:
export RPC_URL=https://rpc.picklechain.xyz
curl -s "$RPC_URL" \
-X POST -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
# {"jsonrpc":"2.0","id":1,"result":"0x131be"}0x131be - это 78270. Самому вызову не нужны ни ключ, ни аккаунт, ни заголовок сверх типа содержимого: узел ничего не аутентифицирует и отвечает любому, кто до него дотянулся. Тестовый ETH приходит из крана, по одному запросу на адрес каждые 24 часа, и состояние может быть сброшено без предупреждения.
Куда идти дальше
- Параметры сети - константы, одной таблицей.
- Справочник JSON-RPC - все 61 зарегистрированных методов.
- Отличия от Ethereum - прочтите это, прежде чем отлаживать свой клиент.
- История и хранение - прочтите это, прежде чем писать индексатор.
- Реальные активы - слой цен: как получить список активов и как прочитать цену.
- API приложений - HTTP-поверхности первой стороны, которые удобство, а не сеть.
- Список токенов и метки адресов - как токен получает логотип и отметку проверки, а контракт - свою подпись: через pull request.
- Обозреватель - архив, которым узел не является.
- Кран - тестовый ETH и тестовый PKL против вставленного адреса.
Ни одна страница здесь не печатает адрес контракта, и это намеренно
EVM-CALL к аккаунту без кода завершается успешно. Своп, направленный по адресу, где ничего не развёрнуто, не делает revert: он забирает ваш ETH и сообщает об успехе. Поэтому проверяйте через eth_getCode любой адрес, который вам дали, прежде чем что-либо на него отправлять.
Приложения первой стороны разрешают каждый используемый адрес из сети во время выполнения, а не вкомпилируют его, и слой цен описывает, как. Обозреватель показывает, что развёрнуто по адресу; он не верифицирует исходный код и не публикует ABI.