katana参考资料

名称

katana - 创建本地测试网节点,用于部署和测试Starknet智能合约。

用例

katana [OPTIONS]

描述

创建本地测试网节点,用于部署和测试Starknet智能合约。Katana 支持部署和执行 以及 (Cairo 0)Cairo合约。

本节包含有关挖矿模式、支持的 RPC 方法、Katana 标志符及其用法的大量信息。您可以同时运行多个标志符。

挖矿模式

在 Katana 中,挖矿模式决定了区块的挖矿频率。默认情况下,一旦有交易提交,就会自动挖出一个新区块。

您可以将默认的挖矿行为切换为间隔挖矿,即按照用户选择的固定时间间隔创建新区块。要启用这种挖矿模式,请使用--block-time <SECONDS> 标识符,如下例所示。

# Produces a new block every 10 seconds
katana --block-time 10

支持的传输层

目前只支持 HTTP 连接。服务器默认监听 5050 端口,但可以通过运行以下命令进行更改:

katana --port <PORT>

Starknet功能兼容性

支持的交易类型
TypeVersion
INVOKE1
DECLARE1, 2
DEPLOY_ACCOUNT

支持的 RPC 方法

Starknet方法

Katana 支持版本v0.3.0的星网 JSON-RPC 规范。标准方法基于 此处 的参考文献。

  • starknet_blockNumber

  • starknet_blockHashAndNumber

  • starknet_getBlockWithTxs

  • starknet_getBlockWithTxHashes

  • starknet_getBlockTransactionCount

  • starknet_getTransactionByHash

  • starknet_getTransactionByBlockIdAndIndex

  • starknet_getTransactionReceipt

  • starknet_pendingTransactions

  • starknet_getStateUpdate

  • starknet_call

  • starknet_estimateFee

  • starknet_chainId

  • starknet_getNonce

  • starknet_getEvents

  • starknet_getStorageAt

  • starknet_getClassHashAt

  • starknet_getClass

  • starknet_getClassAt

  • starknet_syncing

  • starknet_addInvokeTransaction

  • starknet_addDeclareTransaction

  • starknet_addDeployAccountTransaction

自定义方法

Katana 提供了一套方便的自定义 RPC 方法,可快速、轻松地配置节点,以适应测试环境。

katana_generateBlock
挖掘一个新区块,其中包括当前所有待处理的交易。

katana_nextBlockTimestamp
获取下一个区块的时间。

katana_increaseNextBlockTimestamp
将区块的时间增加给定的时间量,以秒为单位。

katana_setNextBlockTimestamp
katana_increaseNextBlockTimestamp 类似,但会在下一个区块中使用你想要的确切时间戳。

katana_predeployedAccounts
获取所有预部署账户的信息。

katana_setStorageAt 设置合约存储槽中的精确值。

选项

常规选项

--silent
     启动时不打印任何内容。

--no-mining
     禁用自动采矿和间隔采矿,改为按需采矿。

-b, --block-time <SECONDS>
     以秒为单位的区间挖掘时间。

--dump-state <PATH>
     将退出时链的状态转存到给定文件。
     如果值是目录,状态将被写入 <PATH>/state.bin

--load-state <PATH>
    从先前保存的状态快照初始化链。

-h, --help
     打印帮助(用"-h "查看摘要)。

-V, --version
     打印版本信息。

服务器选项

-p, --port <PORT>
     要监听的端口号[默认:5050]。

--host <HOST>
     服务器监听的 IP 地址。

Starknet选项

--seed <SEED>
     指定要预先部署的账户随机性种子。

--accounts <NUM>
     要生成的预注资账户数 [默认值:10]。

--disable-fee
    禁用交易收gas费。

环境选项

--chain-id <CHAIN_ID>
     链 ID [默认值:KATANA]。

--gas-price <GAS_PRICE>
     Gas价格。

--validate-max-steps <VALIDATE_MAX_STEPS>
     账户验证逻辑的最大步骤数。

--invoke-max-steps <INVOKE_MAX_STEPS>
     账户执行逻辑的最大步数。

Shell 补完

katana completions shell

为给定的 shell 生成 shell 补完脚本。

支持的shell有:

  • bash
  • elvish
  • fish
  • powershell
  • zsh

示例

bash 生成 shell 补完脚本,并将其添加到 .bashrc 文件中:

katana completions bash >> ~/.bashrc

示例

  1. 创建 15 个开发用账户并禁用交易费机制
katana --accounts 15 --disable-fee
  1. 将链 id 设置为 SN_GOERLI,并在 8545 端口运行服务器
katana --chain-id SN_GOERLI --port 8545
  1. 加载先前存储的状态,并在网络关闭时将此会话的状态转储到文件中
katana --load-state ./dump-state.bin --dump-state ./dump-state.bin