美文网首页
ETH03:GETH对象说明

ETH03:GETH对象说明

作者: 杨强AT南京 | 来源:发表于2020-04-11 09:01 被阅读0次

      这个主题梳理GETH的ES6对象的使用


    NodeJS与Javascript基础

    控制台使用

    • 连接geth的控制台实际是Javascript交互式编程控制台,一种REPL(Read-Evaluate-Print-Loop)编程方式
      • 使用:exit可以退出
      • 是有个javascript运行环境,支持所有javascript语法。【注意对ES语法的版本】
        • 测试let语法无效;
    1. Javascript语法
    REPL编程
    1. 使用console对象余直接显示变量值
    • 常用console.log函数
    显示变量值

    对象查看

    • 查看对象等于是在线帮助,可以知道某个对象的成员函数怎么拼写与使用。

    直接查看

    • 在控制台把变量作为一个语句使用。
    查看net与this对象

    GETH功能接口开通

    • 通过--rpcapi可以控制某些功能接口是否开通。
    开通 miner旷工接口

    Object类

    • 查看对象使用Object根类的几个静态函数可以查看。

      • Object的标准参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object
      1. Object.keys(对象)

        • 获得对象的实例
      2. Object.getOwnPropertyNames(对象)

        • 获得对象的实例名称
    • this是当前对象

    查看对象成员

    eth核心对象

    1. RPC默认开放的访问接口如下:
      • "web3", "eth", "personal", "net", "rpc"
    RPC默认开放的接口
    1. 使用本地管道登录开放的接口
      • web3", "eth", "personal", "clique", "debug", "miner", "net", "rpc", "admin", "txpool"
    本地功能模块

    常用核心对象说明

    web3接口

    • 下面的所有接口在web3中都包含。
    Web3接口

    admin接口

    • 节点信息管理
    节点管理

    personal接口

    • 提供个人信息管理:包含账号信息
    个人信息管理

    miner接口

    • 提供挖矿功能
    旷工接口

    net接口

    • 提供网络状态访问
    网络状态

    eth接口

    • 以太坊的所有功能接口:
    以太坊接口

    rpc接口

    • 列出prc支持从接口机机器版本
    RPC API支持的接口

    基本操作

    • 操作方式:

      • 控制台方式
        • personal.listAccounts
      • RPC JSON方式
        • {"method": "personal_listAccounts", "params": []}
    • 操作参考文档:

      • https://geth.ethereum.org/docs/rpc/server
      • https://github.com/ethereum/wiki/wiki/JSON-RPC#javascript-api
    • 提示:

      • 下面主要以Javascript操作演示为主。

    personal账号管理

    1. 查看账号
    • personal.listAccounts
    • eth.accounts

    1. 创建账号
    • personal.newAccount()

    1. 账户交易
    • personal.sendTransaction(tx, passphrase)

      • tx是一个json的交易信息描述:
        • var tx = {from: "0x391694e7e0b0cce554cb130d723a9d27458f9298", to: "0xafa3f8684e54059998bc3a7b0d2b0da075154d66", value: web3.toWei(1.23, "ether")}
    • 例子:

    > amount = web3.toWei(1.5, 'ether')
    > eth.sendTransaction({from:eth.accounts[0], to:eth.accounts[1], value:amount})
    

    1. 锁定账户交易
    • personal.lockAccount(address)

    1. 解锁账户交易
    • personal.unlockAccount(address, passphrase, duration)
      • duration: 解锁周期,单位是10秒,,默认30是300秒。设置为0表示知道服务结束。

    miner挖矿操作

    1. start挖矿
    • miner.start(number)
      • number是挖矿的线程数。

    1. stop停止挖矿
    • miner.stop()
      • 返回bool值,表示是否停止成功;
    1. setGasPrice设置燃气费
      • miner.setGasPrice(number)
      • 方法用来设置挖矿时交易的最小可接受 gas价格,任何低于此设置值的交易将被排除在挖矿过程之外。

    1. setEtherbase设置挖矿基地
    • miner.setEtherbase(address)
      • 账户地址。

    eth以太坊操作

    1. 基本信息
      • eth.accounts列表类型的所有账号
      • eth.blockNumber块数;
      • eth.coinbase挖矿基地;
      • eth.gasPrice燃气费价格;
      • eth.mining是否在挖矿;
      • eth.pendingTransactions排队的交易数,返回的是列表类型;

    1. 交易调用的参数格式
    json格式的交易对象
    1. getBalance获取账户余额
      • getBalance(地址)

    1. nonce说明:
      • 以太坊中有两种nonce,一种是在区块中的nonce,主要是调整挖矿难度;一种是每笔交易中nonce。
      • 交易中的nonce主要说明交易顺序。防止交易问题。

    admin多节点操作

    1. addPeer添加远程节点
    • admin.addPeer(url)
      • url就是服务启动输出的enode
      • 返回bool值

    • 例子
    > admin.addPeer("enode://a979fb575495b8d6db44f750317d0f4622bf4c2aa3365d6af7c284339968eef29b69ad0dce72a4d8db5ebb4968de0e3bec910127f134779fbcb0cb6d3331163c@52.16.188.185:30303")
    true
    
    1. peers返回所有的连接节点
      • admin.peers:返回列表

    txtool非标椎RPC调用功能

    1. txpool.content
    • 列出当前待包含在下一个块中的所有事务的确切详细信息,以及仅计划在将来执行的事务的详细信息。
    1. txpool.inspect
    • 列出当前待包含在下一个块中的所有事务的文本摘要,以及仅计划在将来执行的事务的文本摘要。这是专门为开发人员定制的方法,用于快速查看池中的事务并发现任何潜在问题。
    1. txpool.status
    • 获取当前待包含在下一个块中的事务数,以及仅计划在将来执行的事务数。

    附录

    以太币的单位

    • Ether币最小的单位是Wei,也是命令行默认的单位, 然后每 1000 进一个单位,依次是
      • kwei (1000 Wei)
      • mwei (1000 KWei)
      • gwei (1000 mwei)
      • szabo (1000 gwei)
      • finney (1000 szabo)
      • ether (1000 finney)
    • web3提供两个转换函数
      • web3.toWei(ether)
      • web3.fromWei(wei)

    相关文章

      网友评论

          本文标题:ETH03:GETH对象说明

          本文链接:https://www.haomeiwen.com/subject/tlyemhtx.html