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功能兼容性
支持的交易类型
Type | Version |
---|---|
INVOKE | 1 |
DECLARE | 1, 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
示例
- 创建 15 个开发用账户并禁用交易费机制
katana --accounts 15 --disable-fee
- 将链 id 设置为
SN_GOERLI
,并在 8545 端口运行服务器
katana --chain-id SN_GOERLI --port 8545
- 加载先前存储的状态,并在网络关闭时将此会话的状态转储到文件中
katana --load-state ./dump-state.bin --dump-state ./dump-state.bin