Para desenvolvedores / Para começar

Pickle Chain para desenvolvedores

Uma Layer 2 da Ethereum que executa sua transação imediatamente, devolve uma pré-confirmação assinada e sela em volta dela um bloco comum no formato da Ethereum. O gas é pago em ETH, e a superfície eth_* padrão basta para MetaMask, Foundry e Hardhat.

O que é

A Pickle roda um sequenciador Rust sob medida com revm fixado em Cancun. Quando você envia uma transação, ela executa na hora - eth_sendRawTransaction bloqueia até o resultado existir em vez de devolver a promessa de um - e um recibo está disponível dentro da meta de agendamento do minibloco, cerca de 10 ms. Um bloco no formato da Ethereum envolvendo esses miniblocos é selado a uma meta de agendamento de cerca de 250 ms, e é esse bloco que carteiras e exploradores tratam como uma confirmação.

Do ponto de vista do ferramental, a cadeia é comum onde mais importa: chain ID 78270 na rede de teste pública que esta referência documenta, ETH para o gas, um limite de gas por bloco de 30.000.000, JSON-RPC padrão e cabeçalhos de bloco no formato Cancun. forge, ethers, viem e MetaMask todos funcionam contra ela. Ela também é incomum onde isso importa, e isso tem página própria em vez de um parágrafo aqui.

O que não é

O modelo de confiança, enunciado por inteiro

  • 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.

A Pickle não se apresenta de outra forma que não como uma cadeia de operador único, e esta documentação não publica nenhum número de vazão. Os dois números de cadência acima são metas de agendamento - os intervalos que o produtor de blocos procura atingir - e não garantias de latência nem uma afirmação sobre vazão. O selador pula um tique atrasado em vez de correr atrás do prejuízo.

Também não é uma equivalência completa com a EVM, e as diferenças são publicadas em página própria em vez de deixadas para você descobrir em tempo de execução. Em resumo: as leituras de estado ignoram o parâmetro de bloco, não há arquivo, e error.data nunca é preenchido, então sua biblioteca não consegue decodificar um erro personalizado.

A forma da coisa

Uma transação atravessa três camadas, e saber qual delas você está observando é a maior parte do que torna esta cadeia legível:

  • Execução - imediata, síncrona com a sua chamada RPC. Um revert é conhecido aqui.
  • Pré-confirmação - um minibloco, assinado pelo sequenciador, a uma meta de agendamento de cerca de 10 ms. Seu recibo existe, e o blockNumber dele ainda é null.
  • Confirmação - um bloco EVM, a uma meta de agendamento de cerca de 250 ms. Aí blockNumber e blockHash estão preenchidos.

A finalidade é um quarto evento, separado: acontece depois que o lote que contém a transação liquida na Ethereum. Este site não usa a palavra para mais nada.

Sua primeira chamada

A rede de teste pública responde em https://rpc.picklechain.xyz. Os exemplos a escrevem em toda parte como $RPC_URL, para que o mesmo comando rode sem alteração contra um nó seu:

bash
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 vale 78270. A chamada em si não pede chave, nem conta, nem cabeçalho além de um tipo de conteúdo: o nó não autentica nada e responde a qualquer um que consiga alcançá-lo. O ETH de teste vem do faucet, um pedido por endereço a cada 24 horas, e o estado pode ser zerado sem aviso.

Para onde ir depois

Nenhuma página aqui imprime um endereço de contrato, e isso é deliberado

Um CALL da EVM para uma conta sem código tem sucesso. Um swap roteado para um endereço onde nada está implantado não dá revert: ele leva o seu ETH e reporta sucesso. Então verifique com eth_getCode qualquer endereço que lhe deram antes de mandar o que quer que seja para ele.

As aplicações de primeira parte resolvem em tempo de execução, a partir da cadeia, cada endereço que usam em vez de compilar um dentro, e a camada de preços documenta como. O explorador mostra o que está implantado num endereço; ele não verifica nenhuma fonte e não publica nenhum ABI.