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
blockNumberdele ainda énull. - Confirmação - um bloco EVM, a uma meta de agendamento de cerca de 250 ms. Aí
blockNumbereblockHashestã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:
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
- Parâmetros de rede - as constantes, numa tabela.
- Referência JSON-RPC - os 61 métodos registrados.
- Diferenças com a Ethereum - leia isto antes de depurar seu cliente.
- Histórico e retenção - leia isto antes de escrever um indexador.
- Ativos do mundo real - a camada de preços: como obter a lista de ativos e como ler um preço.
- APIs das aplicações - as superfícies HTTP de primeira parte, que são uma comodidade e não a cadeia.
- Lista de tokens e tags de endereço - como um token ganha o seu logo e a marca de verificado, e um contrato o seu rótulo: um pull request.
- O explorador - o arquivo que o nó não é.
- O faucet - ETH de teste e PKL de teste, contra um endereço colado.
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.