Skip to main content

Alaya Command Line Tools

Introducing the program Alaya instructions#

NAME:   platon.exe - the platon-go command line interface
   Copyright 2019 The PlatON-Go Authors
USAGE:   platon.exe [options] command [command options] [arguments...]
VERSION:   0.14.0-unstable
COMMANDS:   account           Manage accounts   attach            Start an interactive JavaScript environment (connect to node)   bug               opens a window to report a bug on the platon repo   console           Start an interactive JavaScript environment   copydb            Create a local chain from a target chaindata folder   dump              Dump a specific block from storage   dumpconfig        Show configuration values   export-preimages  Export the preimage database into an RLP stream   import-preimages  Import the preimage database from an RLP stream   init              Bootstrap and initialize a new genesis block   js                Execute the specified JavaScript files   license           Display license information   removedb          Remove blockchain and state databases   version           Print version numbers   help, h           Shows a list of commands or help for one command
PLATON OPTIONS:  --config value                                        TOML configuration file  --datadir "C:\Users\jungle\AppData\Roaming\PlatON"  Data directory for the databases and keystore  --keystore                                            Directory for the keystore (default = inside the datadir)  --nousb                                               Disables monitoring for and managing USB hardware wallets  --networkid value                                     Network identifier (integer, 1=Frontier, 2=Morden (disused), 3=Ropsten, 4=Rinkeby) (default: 1)  --main                                                Mainnet network: pre-configured main network (default network)  --testnet                                             Testnet network: pre-configured test network  --alaya                                               alaya network: pre-configured alaya network  --alayatestnet                                        alaya test network: pre-configured alaya test network  --syncmode "full"                                     Blockchain sync mode ("fast", "full", or "light")  --identity value                                      Custom node name  --lightserv value                                     Maximum percentage of time allowed for serving LES requests (0-90) (default: 0)  --lightpeers value                                    Maximum number of LES client peers (default: 100)  --lightkdf                                            Reduce key-derivation RAM & CPU usage at some expense of KDF strength
DEVELOPER CHAIN OPTIONS:  --dev.period value  Block period to use in developer mode (0 = mine only if transaction pending) (default: 0)
TRANSACTION POOL OPTIONS:  --txpool.locals value         Comma separated accounts to treat as locals (no flush, priority inclusion)  --txpool.nolocals             Disables price exemptions for locally submitted transactions  --txpool.journal value        Disk journal for local transaction to survive node restarts (default: "transactions.rlp")  --txpool.rejournal value      Time interval to regenerate the local transaction journal (default: 1h0m0s)  --txpool.pricelimit value     Minimum gas price limit to enforce for acceptance into the pool (default: 1)  --txpool.pricebump value      Price bump percentage to replace an already existing transaction (default: 10)  --txpool.accountslots value   Minimum number of executable transaction slots guaranteed per account (default: 16)  --txpool.globalslots value    Maximum number of executable transaction slots for all accounts (default: 16384)  --txpool.accountqueue value   Maximum number of non-executable transaction slots permitted per account (default: 64)  --txpool.globalqueue value    Maximum number of non-executable transaction slots for all accounts (default: 4096)  --txpool.globaltxcount value  Maximum number of transactions for package (default: 3000)  --txpool.lifetime value       Maximum amount of time non-executable transaction are queued (default: 3h0m0s)  --txpool.cacheSize value      After receiving the specified number of transactions from the remote, move the transactions in the queen to pending (default: 0)
PERFORMANCE TUNING OPTIONS:  --cache value           Megabytes of memory allocated to internal caching (default: 1024)  --cache.database value  Percentage of cache memory allowance to use for database io (default: 75)  --cache.gc value        Percentage of cache memory allowance to use for trie pruning (default: 25)  --cache.triedb value    Megabytes of memory allocated to triedb internal caching (default: 512)
ACCOUNT OPTIONS:  --unlock value    Comma separated list of accounts to unlock  --password value  Password file to use for non-interactive password input
API AND CONSOLE OPTIONS:  --rpc                  Enable the HTTP-RPC server  --rpcaddr value        HTTP-RPC server listening interface (default: "localhost")  --rpcport value        HTTP-RPC server listening port (default: 6789)  --rpcapi value         API's offered over the HTTP-RPC interface  --ws                   Enable the WS-RPC server  --wsaddr value         WS-RPC server listening interface (default: "localhost")  --wsport value         WS-RPC server listening port (default: 6790)  --wsapi value          API's offered over the WS-RPC interface  --wsorigins value      Origins from which to accept websockets requests  --ipcdisable           Disable the IPC-RPC server  --ipcpath              Filename for IPC socket/pipe within the datadir (explicit paths escape it)  --rpccorsdomain value  Comma separated list of domains from which to accept cross origin requests (browser enforced)  --rpcvhosts value      Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard. (default: "localhost")  --jspath loadScript    JavaScript root path for loadScript (default: ".")  --exec value           Execute JavaScript statement  --preload value        Comma separated list of JavaScript files to preload into the console
NETWORKING OPTIONS:  --bootnodes value          Comma separated enode URLs for P2P discovery bootstrap (set v4+v5 instead for light servers)  --bootnodesv4 value        Comma separated enode URLs for P2P v4 discovery bootstrap (light server, full nodes)  --port value               Network listening port (default: 16789)  --maxpeers value           Maximum number of network peers (network disabled if set to 0) (default: 50)  --maxconsensuspeers value  Maximum number of network consensus peers (network disabled if set to 0) (default: 75)  --maxpendpeers value       Maximum number of pending connection attempts (defaults used if set to 0) (default: 0)  --nat value                NAT port mapping mechanism (any|none|upnp|pmp|extip:<IP>) (default: "any")  --nodiscover               Disables the peer discovery mechanism (manual peer addition)  --netrestrict value        Restricts network communication to the given IP networks (CIDR masks)  --nodekey value            P2P node key file  --nodekeyhex value         P2P node key as hex (for testing)
MINER OPTIONS:  --miner.gasprice "1000000000"  Minimum gas price for mining a transaction  --miner.gastarget value        Target gas floor for mined blocks (default: 4712388)
GAS PRICE ORACLE OPTIONS:  --gpoblocks value      Number of recent blocks to check for gas prices (default: 20)  --gpopercentile value  Suggested gas price is the given percentile of a set of recent transaction gas prices (default: 60)
LOGGING AND DEBUGGING OPTIONS:  --nocompaction            Disables db compaction after import  --verbosity value         Logging verbosity: 0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (default: 3)  --vmodule value           Per-module verbosity: comma-separated list of <pattern>=<level> (e.g. eth/*=5,p2p=4)  --backtrace value         Request a stack trace at a specific logging statement (e.g. "block.go:271")  --debug                   Prepends log messages with call-site location (file and line number)  --pprof                   Enable the pprof HTTP server  --pprofaddr value         pprof HTTP server listening interface (default: "127.0.0.1")  --pprofport value         pprof HTTP server listening port (default: 6060)  --memprofilerate value    Turn on memory profiling with the given rate (default: 524288)  --blockprofilerate value  Turn on block profiling with the given rate (default: 0)  --cpuprofile value        Write CPU profile to the given file  --trace value             Write execution trace to the given file  --wasmlog value           output wasm contract log to file
METRICS AND STATS OPTIONS:  --metrics                          Enable metrics collection and reporting  --metrics.influxdb                 Enable metrics export/push to an external InfluxDB database  --metrics.influxdb.endpoint value  InfluxDB API endpoint to report metrics to (default: "http://localhost:8086")  --metrics.influxdb.database value  InfluxDB database name to push reported metrics to (default: "platon")  --metrics.influxdb.username value  Username to authorize access to the database (default: "test")  --metrics.influxdb.password value  Password to authorize access to the database (default: "test")  --metrics.influxdb.host.tag host   InfluxDB host tag attached to all measurements (default: "localhost")
DEPRECATED OPTIONS:  --targetgaslimit value   Target gas floor for mined blocks (deprecated, use --miner.gastarget) (default: 4712388)  --gasprice "1000000000"  Minimum gas price for mining a transaction (deprecated, use --miner.gasprice)
CBFT OPTIONS:  --cbft.msg_queue_size value      Message queue size (default: 1024)  --cbft.wal.disabled              Disable the Wal server  --cbft.max_ping_latency value    Maximum latency of ping (default: 2000)  --cbft.blskey value              BLS key file  --cbft.blacklist_deadline value  Blacklist effective time. uint:minute (default: "60")
DB OPTIONS:  --db.nogc               Disables database garbage collection  --db.gc_interval value  Block interval for garbage collection (default: 86400)  --db.gc_timeout value   Maximum time for database garbage collection (default: 1m0s)  --db.gc_mpt             Enables database garbage collection MPT  --db.gc_block value     Number of cache block states, default 10 (default: 10)
VM OPTIONS:  --vm.wasm_type value         The actual implementation type of the wasm instance (default: "wagon")  --vm.timeout_duration value  The VM execution timeout duration (uint: ms) (default: 0)
MISC OPTIONS:  --help, -h  show help

COPYRIGHT:   Copyright 2019 The PlatON-Go Authors

Common rpc commands#

  • Description
    • The rpc port is changed according to the actual startup command and the default is 6789

admin#

  • View the data directory of the current node

    platon attach http://localhost:6789 -exec admin.datadir
  • View the ChainID of the current node

    platon attach http://localhost:6789 -exec admin.nodeInfo.protocols.platon.config.chainId
  • View the id of the current node

    platon attach http://localhost:6789 -exec admin.nodeInfo.id
  • View the blsPubKey of the current node

    platon attach http://localhost:6789 -exec admin.nodeInfo.blsPubKey
  • View the p2p port number of the current node

    platon attach http://localhost:6789 -exec admin.nodeInfo.ports.listener
  • View the connection information of peers of the current node

    platon attach http://localhost:6789 -exec admin.peers
  • View the genesis block hash of the current node

    platon attach http://localhost:6789 -exec admin.nodeInfo.protocols.platon.genesis
  • View the maximum number of blocks ($amount) of a single node in each consensus round of cbft consensus

    platon attach http://localhost:6789 -exec admin.nodeInfo.protocols.platon.config.cbft.amount
  • View the time window of block generation by a single node in each consensus round of cbft consensus ($period, unit: ms)

    platon attach http://localhost:6789 -exec admin.nodeInfo.protocols.platon.config.cbft.period

    Blocking time interval = period / 1000 / amount

  • Get the binary version number and signature information

    platon attach http://localhost:6789 -exec 'admin.getProgramVersion()'
  • Obtain zero- knowledge proof information (use the node's private key to prove whether the certificate issued by the interface is correct and used for node pledge)

    platon attach http://localhost:6789 -exec 'admin.getSchnorrNIZKProve()'
  • View the type of virtual machine used at the bottom (EVM / WASM)

    platon attach http://localhost:6789 -exec admin.nodeInfo.protocols.platon.config.interpreter

platon#

  • View all wallet addresses under the current node

    platon attach http://localhost:6789 -exec platon.accounts
  • View the block height of the current node

    platon attach http://localhost:6789 -exec platon.blockNumber
  • Check the balance of the specified account ($account is the account address)

    platon attach http://localhost:6789 -exec 'platon.getBalance("$account")'
  • Query the number of transactions in the specified block ($blockNumber is the block height or block hash of the specified block)

    platon attach http://localhost:6789 -exec 'platon.getBlockTransactionCount($blockNumber)'
  • Query transaction information ($txHash is transaction hash)

    platon attach http://localhost:6789 -exec 'platon.getTransaction("$txHash")'
  • Query transaction receipt ($txHash is transaction hash)

    platon attach http://localhost:6789 -exec 'platon.getTransactionReceipt("$txHash")'
  • Query the number of transactions in the specified account (parameter $address is the account address, used to specify the nonce of the transaction when sending the transaction)

    platon attach http://localhost:6789 -exec 'platon.getTransactionCount("$address")'
  • Query the pending transaction of the current node

    platon attach http://localhost:6789 -exec platon.pendingTransactions
  • View the default gasPrice of the current node (unit: von)

    platon attach http://localhost:6789 -exec platon.gasPrice
  • Estimate the gas of the transaction (parameter $transaction is the transaction details, unit: von)

    platon attach http://localhost:6789 -exec 'platon.estimateGas($transaction)'

    For example:

    platon attach http://localhost:6789 -exec 'platon.estimateGas({from:"lax1fyeszufxwxk62p46djncj86rd553skpptsj8v6",to:"lax1zhllhqu72wz66cdwly8983xhla2sann75j2ec2",value:"0x10000000000000",data:"0x11",gas:"0x88888",gasprice:"0x333333",nonce:"11"})'
  • View the p2p protocol number of the underlying version of the current node

    platon attach http://localhost:6789 -exec 'web3.toDecimal(platon.protocolVersion)'
  • See if the current node is in sync

    platon attach http://localhost:6789 -exec platon.syncing
  • Get details of specified block

    platon attach http://localhost:6789 -exec 'platon.getBlock($blockNumber)'

personal#

  • Generate wallet (parameter is wallet password)

    platon attach http://localhost:6789 -exec 'personal.newAccount("88888888")'
  • Import private key to generate wallet

    platon attach http://localhost:6789 -exec 'personal.importRawKey($privateKey, $password)'

    Parameters:

    • privateKey: private key, remove the leading 0x
    • password: wallet password

    Back to:

    • Wallet address

    For example:

    platon attach http://localhost:6789 -exec 'personal.importRawKey ("842d943dbb50a8d3fe63af2f82fda3d8f0ca817fe8d47e61698142bac7c24212", "88888888")'
  • View account address

    platon attach http://localhost:6789 -exec 'personal.listAccounts'
  • View local wallet information, including wallet address, wallet file path and wallet status

    platon attach http://localhost:6789 -exec 'personal.listWallets'
  • Lock account

    platon attach http://localhost:6789 -exec 'personal.lockAccount(platon.accounts[0])'
  • Unlock account

    platon attach http://localhost:6789 -exec 'personal.unlockAccount(platon.accounts[0], "88888888", 24*3600)'

    Parameters:

    • Account address
    • Wallet password
    • Unlock time in seconds
  • Send unsigned transactions

    platon attach http://localhost:6789 -exec 'personal.sendTransaction({from: platon.accounts[2], to: platon.accounts[0], value:web3.toVon("0.1","lat"), nonce: platon.getTransactionCount(platon.accounts[2])}, "88888888") '

net#

  • View the networkid of the current node

    platon attach http://localhost:6789 -exec net.version
  • Check whether the p2p port of the current node is in the listening state

    platon attach http://localhost:6789 -exec net.listening
  • View the number of peer connections of the current node

    platon attach http://localhost:6789 -exec net.peerCount

debug#

  • Query the economic model configuration parameters of the current node

    platon attach http://localhost:6789 -exec 'debug.economicConfig()'
  • Set log level

    platon attach http://localhost:6789 -exec 'debug.verbosity(4)'

    Log level description:

    0: CRIT

    1: ERROR

    2: WARN

    3: INFO

    4: DEBUG

    5: TRACE

alayakey tool instructiona#

alayakey [global options] command [command options] [arguments...]
VERSION:   0.14.0-unstable-16aced7d
COMMANDS:   generate generate new keyfile   inspect inspect a keyfile   changepassphrase change the passphrase on a keyfile   signmessage sign a message   verifymessage verify the signature of a signed message   genkeypair generate new private key pair   genblskeypair generate new bls private key pair   updateaddress update hex/bech32 address to mainnet/testnet bech32 address   help Shows a list of commands or help for one command
GLOBAL OPTIONS:   --help, -h show help   --version, -v print the version

Common commands#

  • Generate wallet
NAME:   alayakey generate - generate new keyfile
USAGE:   alayakey generate [command options] [<keyfile>]
DESCRIPTION:
Generate a new keyfile.
If you want to encrypt an existing private key, it can be specified by setting--privatekey with the location of the file containing the private key.

OPTIONS:   --passwordfile value the file that contains the passphrase for the keyfile   --json output JSON instead of human-readable format   --privatekey value file containing a raw private key to encrypt
  • A new wallet can be generated by the following command
alayakey generate
  • You can also use the following command to encrypt a privatekey in plaintext to generate a wallet file
alayakey generate --privatekey ./prikey --json
  • Generate a public and private key pair
NAME:   alayakey genkeypair - generate new private key pair
USAGE:   alayakey genkeypair [command options] [ ]
DESCRIPTION:   Generate a new private key pair.

OPTIONS:   --json  output JSON instead of human-readable format
  • Generate node BLS public and private key
NAME:   alayakey genblskeypair-generate new bls private key pair
USAGE:   alayakey genblskeypair [command options] []
DESCRIPTION:
Generate a new bls private key pair.

OPTIONS:   --json output JSON instead of human-readable format
  • Convert any EIP55/bech32 address to alaya address
NAME:   alayakey updateaddress-update hex/bech32 address to mainnet/testnet bech32 address
USAGE:   alayakey updateaddress [command options] [<address> <address>...]
DESCRIPTION:
update hex/bech32 address to mainnet/testnet bech32 address.

OPTIONS:   --json output JSON instead of human-readable format   --hexAddressFile value file bech32/hex accounts want to update to mainnet/testnet bech32 address,file like [hex,hex...]
  • The following command converts EIP55 address to alaya address
alayakey updateaddress 0x1000000000000000000000000000000000000001
  • This command supports converting any bech32 address to alaya address, such as:
alayakey updateaddress lax19phpafljm0mgu2fj8mrwyarftpafynxvj0d7lhoriginAddress: lax19phpafljm0mgu2fj8mrwyarftpafynxvj0d7lhmain net Address: atp19phpafljm0mgu2fj8mrwyarftpafynxvyuffwhother net Address: atx19phpafljm0mgu2fj8mrwyarftpafynxvw64raa