第01课:以太坊节点部署及基本命令操作

2023-11-10

第01课:以太坊节点部署及基本命令操作

区块链诞生自中本聪的比特币,自 2009 年以来,出现了各种各样的类比特币的基于公有区块链的数字货币,目前各个国家及企业机构都对区块链投入巨大的财力和人力来对区块链技术进行研究。

官方文档:https://ethereum.gitbooks.io/frontier-guide/content/index.html

区块链简介

这里引用工信部指导发布的《中国区块链技术和应用发展白皮书 2016》中的解释:

广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。

简单来说,区块链就是一个去中心化的分布式账本数据库,而大家耳熟能详的比特币、以太币等就是这个分布式账本上流通的数字货币。

第一代的比特币引爆了区块链技术,但它能做的事情很少;而以以太坊为代表的第二代区块链技术,引入了图灵完备的机制,它是一个平台和一种编程语言。在以太坊上面可以进行编程操作,比如发布智能合约、发布属于自己的代币,进而衍生出各类应用。

本系列课程目标

本系列课程的目标是快速带领大家进入以太坊的世界,通过私有节点的部署、公链的同步、以太坊的基本命令操作、JSON-RPC 接口的调用、代币的快速开发及发布、如何在 Etherscan 上对代币进行操作、代币的 Java 调用、以太坊的数字货币钱包开发等。

通过本系列课程的学习,可以达到从入门到对以太坊的功能及周边知识有一个系统的了解。如果有一定的编程基础可以快速开发出自己的一套代币,并通过 JSON-RPC 调用这套代币;另一方面,也可以开发出一套简单的以太坊数字货币钱包。

本节课程简介

无论是学习以太坊技术,还是搭建自己的以太坊服务器或部署相关智能合约都需要了解以太坊节点的部署步骤。本篇文章的内容是将带领大家学习一下如何安装部署以太坊的 Geth 节点。

以太坊的钱包

以太坊的钱包有不少,比如 Geth、Ethereum Wallet、Parity 等,还有一些轻量级的 App 钱包,如 imtoken 等。前面一类钱包是需要同步节点数据,而后面的 App 则有相应的平台将数据同步完成。

而作为开发者或学习者必定要选择前面一类钱包,而像 Ethereum Wallet 有友好的用户界面,针对炒币人员或存储以太币或简单转账可进行使用;而对于开发人员来说还是需要官方的专业钱包——Geth。

如果是在 Linux 系统下启动 Ethereum Wallet 钱包,通过 ps 命令会看到,其实它内置了 Geth 钱包程序,只是在外面用 JavaScript 封装了一层可视化操作界面。

实战经验

如果是建立交易平台或提供外部服务器或者学习相关技术(更好的了解底层)一定要选择 Geth 钱包进行部署,这也是官方指定版本。

Geth 下载 & 安装

下载

以太坊的官网地址详见这里,官网会自动识别当前系统,在首页提供对应操作系统的下载链接;也可直接访问 Geth 下载专区进行下载,由于官网的下载经常抽风,可通过此镜像下载。 在官网的页面会看到 4 种类型的程序,分别支持 Win、Mac、Linux 和源码安装,根据自己的系统选择对应的安装程序。

安装

安装步骤没有过多可介绍的,直接执行对应的程序即可安装。如果采用源代码安装需先搭建 Go 编程语言环境,同时需要一定的 Go 语言基础,然后参考 GitHub 上的安装步骤安装即可。此非本节重点内容这里就不再赘述了。

无论在什么操作系统下安装完成,我们能够找的可执行的程序是 Geth。下面介绍本节课的重点,即基于 Geth 的启动和参数说明。

下面以 Windows 操作系统为例,安装过程中的每一步操作如下:

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

Geth 程序启动

如果大家比较着急,可以直接执行 Geth 程序。在 Windows 下通过 cmd 命令进入命令窗口,定位到 geth.exe 所在目录,然后执行即可启动。Mac 和 Linux 环境按照 Linux 操作,通过 cd 命令进入 geth 所在目录,执行 ./geth 即可启动程序,后面的内容操作不同的系统对应不同的操作方式,我们不再进行每个系统的区分,统一按照 Linux 系统来操作,毕竟最终还是要部署到 Linux 操作系统上的。

当然,如果你有一定的耐心,那么还是等一下,了解相关的参数即配置项之后再启动程序。

核心命令和参数

我们可以通过 help 命令来先了解查看一下基本使用参数情况:

>./geth -h

NAME:
   geth - the go-ethereum command line interface

   Copyright 2013-2017 The go-ethereum Authors

USAGE:
   geth [options] command [command options] [arguments...]

VERSION:
   1.7.3-stable-4bb3c89d

COMMANDS:
   account     Manage accounts
   attach      Start an interactive JavaScript environment (connect to node)
   bug         opens a window to report a bug on the geth 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      Export blockchain into file
   import      Import a blockchain file
   init        Bootstrap and initialize a new genesis block
   js          Execute the specified JavaScript files
   license     Display license information
   makecache   Generate ethash verification cache (for testing)
   makedag     Generate ethash mining DAG (for testing)
   monitor     Monitor and visualize node metrics
   removedb    Remove blockchain and state databases
   version     Print version numbers
   wallet      Manage Ethereum presale wallets
   help, h     Shows a list of commands or help for one command

ETHEREUM OPTIONS:
  --config value                           TOML configuration file
  --datadir "/Users/zzs/Library/Ethereum"  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)
  --testnet                                Ropsten network: pre-configured proof-of-work test network
  --rinkeby                                Rinkeby network: pre-configured proof-of-authority test network
  --syncmode "fast"                        Blockchain sync mode ("fast", "full", or "light")
  --ethstats value                         Reporting URL of a ethstats service (nodename:secret@host:port)
  --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: 20)
  --lightkdf                               Reduce key-derivation RAM & CPU usage at some expense of KDF strength

DEVELOPER CHAIN OPTIONS:
  --dev               Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled
  --dev.period value  Block period to use in developer mode (0 = mine only if transaction pending) (default: 0)

ETHASH OPTIONS:
  --ethash.cachedir                     Directory to store the ethash verification caches (default = inside the datadir)
  --ethash.cachesinmem value            Number of recent ethash caches to keep in memory (16MB each) (default: 2)
  --ethash.cachesondisk value           Number of recent ethash caches to keep on disk (16MB each) (default: 3)
  --ethash.dagdir "/Users/zzs/.ethash"  Directory to store the ethash mining DAGs (default = inside home folder)
  --ethash.dagsinmem value              Number of recent ethash mining DAGs to keep in memory (1+GB each) (default: 1)
  --ethash.dagsondisk value             Number of recent ethash mining DAGs to keep on disk (1+GB each) (default: 2)

TRANSACTION POOL OPTIONS:
  --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: 4096)
  --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: 1024)
  --txpool.lifetime value      Maximum amount of time non-executable transaction are queued (default: 3h0m0s)

PERFORMANCE TUNING OPTIONS:
  --cache value            Megabytes of memory allocated to internal caching (min 16MB / database forced) (default: 128)
  --trie-cache-gens value  Number of trie node generations to keep in memory (default: 120)

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: 8545)
  --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: 8546)
  --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)
  --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)
  --bootnodesv5 value   Comma separated enode URLs for P2P v5 discovery bootstrap (light server, light nodes)
  --port value          Network listening port (default: 30303)
  --maxpeers value      Maximum number of network peers (network disabled if set to 0) (default: 25)
  --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)
  --v5disc              Enables the experimental RLPx V5 (Topic Discovery) mechanism
  --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:
  --mine                    Enable mining
  --minerthreads value      Number of CPU threads to use for mining (default: 8)
  --etherbase value         Public address for block mining rewards (default = first account created) (default: "0")
  --targetgaslimit value    Target gas limit sets the artificial target gas floor for the blocks to mine (default: 4712388)
  --gasprice "18000000000"  Minimal gas price to accept for mining a transactions
  --extradata value         Block extra data set by the miner (default = client version)

GAS PRICE ORACLE OPTIONS:
  --gpoblocks value      Number of recent blocks to check for gas prices (default: 10)
  --gpopercentile value  Suggested gas price is the given percentile of a set of recent transaction gas prices (default: 50)

VIRTUAL MACHINE OPTIONS:
  --vmdebug  Record information useful for VM and contract debugging

LOGGING AND DEBUGGING OPTIONS:
  --metrics                 Enable metrics collection and reporting
  --fakepow                 Disables proof-of-work verification
  --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

WHISPER (EXPERIMENTAL) OPTIONS:
  --shh                       Enable Whisper
  --shh.maxmessagesize value  Max message size accepted (default: 1048576)
  --shh.pow value             Minimum POW accepted (default: 0.2)

DEPRECATED OPTIONS:
  --fast   Enable fast syncing through state downloads
  --light  Enable light client mode

MISC OPTIONS:
  --help, -h  show help


COPYRIGHT:
   Copyright 2013-2017 The go-ethereum Authors

参数和操作何其多啊,不过,不用担心也不要害怕,掌握其中几个重要的参数即可成功的部署启动 Geth 节点,通过 help 命令可以方便的获得相关的命令和参数。

当我们直接执行 Geth 命令时,程序会按照默认参数进行启动,所谓默认参数就是上面我们 help 查看到的,说明中有 default 项的参数值,默认参数值并不能很好的满足我们的需求。

数据目录

datadir 参数,指定 Geth 区块数据及私钥存储目录,如果未指定 Windows 系统将在 C 盘下存储,Linux 系统将在用户对应的 home 目录下存储。此时,启动命令为:

>./geth --datadir /Users/zzs/develop/eth/geth/data-test

上面就将所有的数据存储在了 data-test 目录下。

实战经验

启动时一定要指定一个足够大硬盘的路径,不建议使用默认路径,此路径在后面使用的过程中会频繁用到,如果私钥文件没有单独存储,那么也将存储在此目录下。

备注:

启动Geth即可以启动以太坊的区块链,为了构建私有链 ,需要在Geth启动时加入一些参数,Geth参数含义如下: 
identity
区块链的标示,随便填写,用于标示目前网络的名字
init
指定创世块文件的位置,并创建初始块
datadir
设置当前区块链网络数据存放的位置
port
网络监听端口
rpc
启动rpc通信,可以进行智能合约的部署和调试
rpcapi
设置允许连接的rpc的客户端,一般为db,eth,net,web3
networkid
设置当前区块链的网络ID,用于区分不同的网络,是一个数字
console
启动命令行模式,可以在Geth中执行命令

开启 JSON-RPC

单独启动程序是无法进行 JSON-RPC 与之交互的。因此,Geth 提供了以下两个参数:

--rpc 

--rpcapi "db,eth,net,web3,miner,personal"
  • 第一个参数 rpc 是告诉节点开启 JSON-RPC 服务;
  • 第二个参数指定 rpc 服务支持哪些角色的 rpc 来操作。

其中,第二个参数的区别及支持哪些操作命令内容比较多,在后面的章节中我们会对此参数的内容进行详细的示例讲解,这里先不着急。

此时,启动 Geth 的命令已经变成如下:

>./geth --datadir /Users/zzs/develop/eth/geth/data-test --rpc --rpcapi "db,eth,net,web3,miner,personal"
实战经验

在真实生产环境中 rpcapi 的 personal、admin 等级别较高的操作权限慎重开启,一旦使用不当会导致系统安全问题。

ipcpath 和 attach

此参数指定 ipc 临时文件的路径,默认在 datadir 指定的目录之下,当节点启动会生成一个名字为 geth.ipc 的文件,当程序关闭时此文件随之消失。

可配合 attach 命令来进入与 geth 节点进行 js 交互的窗口。基本命令如下:

>./geth attach rpc:/Users/zzs/develop/eth/geth/data-test/geth.ipc

以上操作为 Linux 操作,如果 Windows 操作系统未修改 datadir 路径可直接执行 attach 命令,无需添加后面的路径信息。

实战经验

真实环境中我们一般采用后台进程的形式来启动 Geth,Linux 下为在启动参数后面添加 & 符号来启动。此时如果我们想通过命令行来进行交互,即可使用此命令来进入交互窗口。

console

通过此命令可以直接启动 Geth 并进入交互窗口,使用示例:

>./geth --datadir /Users/zzs/develop/eth/geth/data-test --rpc --rpcapi "db,eth,net,web3,miner,personal" console

和 attach 的效果一样,但不建议直接使用 console 进入,否则,一旦退出程序 Geth 节点也随之关闭了,建议使用 attach 模式。

数据存储目录结构

通过上面的参数调整我们已经能够正常启动一个公有链的 Geth 程序了,关于公有链同步会遇到的问题我们将在下一章节进行详细介绍。先来看一下指定的 datadir 目录下都有什么。

datadir 目录下有两个子目录,分别为 geth 和 keystore,其中 geth 目录下存储了区块链同步下来的数据和节点(node)相关个数据。而 keystore 目录下将存储经过加密的私钥文件,不过现在还未生成地址,此目录暂时为空。文件名类似如下格式:

UTC--2018-02-22T08-21-53.763257000Z--c180962e3f348c71bc6aab30552da9e514429ca1
实战经验

keystore 目录下的文件一定要慎重保管,一旦丢失将永远丢失对应地址上的资产,它们和创建账户时设置的密码一一匹配。同时,也要确保此文件放置在公网中,导致账号资产被盗。

基本操作命令

基本操作命令官方文档中已经有相应的说明,这里就简单举例介绍一下相关的操作,以下命令都需要先进入控制台操作窗口。

(1)创建账户

查看此节点下的所有账户:

eth.accounts

(2)查看块高

eth.blockNumber

(3)创建账户

注意:创建账户需要用 pesonal 角色,其中参数为密码:

#方式一:
>personal.newAccount("111111")
"0xbe2f1213da9807e9d64e8ae607be1c86bd53c210"
#方式二:
> personal.newAccount()
Passphrase:
Repeat passphrase:
"0xbe2f1213da9807e9d64e8ae607be1c86bd53c210"

此处建议使用不添加参数的创建模式,这样就不会明文暴露密码信息。当创建账户完成之后,再进入 keystore 目录下就可以看到创建账户对应的加密私钥文件了。

(4)查看账户余额

其中参数为区块链地址:

eth.getBalance("0xbe2f1213da9807e9d64e8ae607be1c86bd53c210")

(5)转账

比如从账户 0x7d1f7be4112ce63b9de04a0bf95c1e87e430bd1b 转账 1 个以太币到 0x587e57a516730381958f86703b1f8e970ff445d9。

eth.sendTransaction({from:"0x7d1f7be4112ce63b9de04a0bf95c1e87e430bd1b",to:"0x587e57a516730381958f86703b1f8e970ff445d9",value:web3.toWei(1,"ether")})

当直接执行此方法时会抛出异常:

account is locked
    at web3.js:3119:20
    at web3.js:6023:15
    at web3.js:4995:36
    at <anonymous>:1:1

此异常说明需要执行账户解锁操作。

(6)解锁转出账户

其中第一个参数为转出账户,第二个参数为密码,也可以直接填写第一个参数,然后通过命令行提示再输入密码。

personal.unlockAccount("0x7d1f7be4112ce63b9de04a0bf95c1e87e430bd1b","111111")

解锁之后即可进行转账操作。

实战经验

需要注意的是默认解锁时间为 300 秒,可设置解锁时间防止被盗。

(1)启动挖矿

miner.start()

(2)停止挖矿

miner.stop()

当在执行挖矿时日志会不停刷屏,不用管,只要命令输入全,执行即可停止挖矿。

实战经验

关于上面的命令操作,在使用中有一个小技巧,比如在交互窗口想查看 eth 都有什么操作命令,可输入 eth.,然后连着敲击两下 tab 键接口展示此角色的所有操作命令,比如:

>eth.
#敲击两下tab
eth._requestManager            eth.defaultAccount             eth.getBlockNumber             eth.getMining                  eth.getTransactionCount        eth.isSyncing                  eth.sendTransaction
eth.accounts                   eth.defaultBlock               eth.getBlockTransactionCount   eth.getPendingTransactions     eth.getTransactionFromBlock    eth.mining                     eth.sign
eth.blockNumber                eth.estimateGas                eth.getBlockUncleCount         eth.getProtocolVersion         eth.getTransactionReceipt      eth.namereg                    eth.signTransaction
eth.call                       eth.filter                     eth.getCode                    eth.getRawTransaction          eth.getUncle                   eth.pendingTransactions        eth.submitTransaction
eth.coinbase                   eth.gasPrice                   eth.getCoinbase                eth.getRawTransactionFromBlock eth.getWork                    eth.protocolVersion            eth.submitWork
eth.compile                    eth.getAccounts                eth.getCompilers               eth.getStorageAt               eth.hashrate                   eth.resend                     eth.syncing
eth.constructor                eth.getBalance                 eth.getGasPrice                eth.getSyncing                 eth.iban                       eth.sendIBANTransaction
eth.contract                   eth.getBlock                   eth.getHashrate                eth.getTransaction             eth.icapNamereg                eth.sendRawTransaction
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第01课:以太坊节点部署及基本命令操作 的相关文章

  • Determining IP information for eth问题解决

    前言 在Linux网卡ifcfg网卡配置项详解文章中提到一个BOOTPROTO 61 配置项 它的意思是指网卡启动时获取ip的方式 xff0c 可以是dhcp或者静态ip 方式 xff0c 如果设置为none说明是不指定ip设置方式 一 问
  • solidity 学习2.批量转账,存入eth。读取数据。

    pragma solidity 0 4 17 import 39 zeppelin solidity contracts token ERC20 StandardToken sol 39 contract BLEOS is Standard
  • Huawei交换机链路聚合eth-trunk配置

    华三的动态对接华为的lacp 华三的静态对接华为的手工 华为手工模式配置 xff1a 1 执行命令 system view xff0c 进入系统视图 2 执行命令 interface eth trunk trunk id xff0c 进入
  • Eth-Trunk链路聚合原理、静态和动态配置

    Eth Trunk原理 静态和动态配置 Eth Trunk链路聚合概述Eth Trunk链路聚合模式静态配置模式LACP动态模式 Eth Trunk链路聚合概述 在组网中经常遇到的问题 xff0c 单条链路的宽带无法满足整个园区的流量需求时
  • Eth-trunk :LACP模式链路聚合实战

    Eth trunk LACP模式链路聚合实战 需求描述 PC1和PC3数据vlan10 xff0c 网段为192 168 10 0 24PC2和PC4数据vlan20 xff0c 网段为192 168 20 0 24确保设备之间互联互通 x
  • Determining IP information for eth问题解决

    前言 在Linux网卡ifcfg网卡配置项详解文章中提到一个BOOTPROTO 61 配置项 它的意思是指网卡启动时获取ip的方式 xff0c 可以是dhcp或者静态ip 方式 xff0c 如果设置为none说明是不指定ip设置方式 一 问
  • Eth-Trunk链路聚合理论

    目录 什么是Eth trunk Eth Trunk的一些概念 LACP模式 手工模式 链路聚合工作机制 负载分担方式 Eth trunk转发原理 什么是Eth trunk Eth trunk xff08 链路聚合技术 xff09 是一种捆绑
  • ETH-Cubli阅读

    7月底补完
  • LWIP (1.1) ETH Module以太网模块

    STM32 以太网 ETH模块说明 1 overview 2 ETH module in stm32h743 STM32H743 为例 开局一张图 ETHER 模块 红框所示 以STM32H743为例 32 BIt AHB为内部高速总线 D
  • 链路层--->ETH(以太网)协议

    文章目录 ETH xff08 以太网 xff09 协议格式 xff1a ARP协议格式 链路层负责相邻设备之间的数据帧传输 xff0c 典型协议有 xff1a ETHH xff08 以太网协议 xff09 xff0c ARP协议 MTU x
  • 关于以太坊的nonce值

    文章目录 每笔交易nonce值的各个情况 总结 关于Nonce的保管 依赖节点 自行管理nonce 参考代码 nonce在区块链中是一个非常重要的概念 从比特币到以太坊都有nonce的身影 在比特币中 nonce主要用于调整pow挖矿的难度
  • 区块链开发溯源系统 基于以太坊的溯源系统开发

    基于以太坊的溯源系统 实现分级用户 商品溯源等的功能 毕设系统
  • 以太坊学习笔记(一)——免费获得测试ETH

    以太坊除了主网之外 还有 Ropsten Kovan Rinkeby等测试环境可供学习 在浏览器钱包插件MetaMask里有以下几个测试环境可以供我们使用 目前以太坊开发最常用的测试网络是Rinkeby 我们就讲讲如何通过Rinkeby免费
  • 解析 ETH 区块数据交易input

    这里使用了一个开源项目 https github com rvullriede evm abi decoder 在pom中添加依赖即可
  • 以太坊开发文档09 - javascriptApi

    Web3 JavaScript appAPI 为了让您的应用程序能够在以太坊上工作 您可以使用web3 js库web3提供的对象 在底层 它通过RPC调用与本地节点通信 web3 js与任何暴露RPC层的以太坊节点一起工作 web3包含et
  • 区块链自定义节点

    本地自定义节点 1 cmd中 安装好geth后 cmd geth help 检查是否geth是否安装好 然后输入命令geth datadir testNet dev rpc console 自定义本地的节点 2 metaMask 再在met
  • 第01课:以太坊节点部署及基本命令操作

    第01课 以太坊节点部署及基本命令操作 区块链诞生自中本聪的比特币 自 2009 年以来 出现了各种各样的类比特币的基于公有区块链的数字货币 目前各个国家及企业机构都对区块链投入巨大的财力和人力来对区块链技术进行研究 官方文档 https
  • 使用PHP语言实现ETH 及 token转账

    以太坊转账 废话不多说直接上代码 代码下载地址 https download csdn net download u012841825 11021920 github代码 用你们可爱的小手 点一下星星 https github com zc
  • 以太坊的MPT树,以及编码,leveldb存储

    声明 此为使用网上多处资料整理而成 由于很多地方内容相同 已经分不清哪里是原创 一 MPT树 1 Trie树 Trie 又称为字典树或者前缀树 prefix tree 属于查找树的一种 它与平衡二叉树的主要不同点包括 每个节点数据所携带的
  • RGMII Delay的一点理解

    RGMII delay 如何产生的 可能是RGMII协议规定如此 因此在soc内部集成的RGMII片内外设 将时钟边沿与数据跳变在同一时刻发生 但是RGMII接收端是需要在时钟的边沿处捕获数据的 因此就需要将发送时钟移位 进而使接收端可以正

随机推荐

  • yolov5 FPN 与 PAN的结构与作用

    在卷积神经网络过程中 网络层数越深 目标的特征信息就越强 模型对目标的预测就更好 但同时也会使得目标的位置信息越来越弱 并且在不断的卷积过程中 对小目标的信息容易造成损失 因此 需要进行不同尺度的预测 YOLOv5 采用 FPN 和 PAN
  • adamax参数_Adamax优化器

    Adamax是Adam的一种变体 此方法对学习率的上限提供了一个更简单的范围 更多详细的基本内容 请参照词条Adam 在Adam中 单个权重的更新规则是将其梯度与当前和过去梯度的L 2范数 标量 成反比例缩放 而作者又将基于L 2范数的更新
  • Linux提权备忘录

    如果不是因为真的喜欢你 我纠缠你干嘛 我又何必那么卑微 那么不堪 甚至不停修改自己的底线 到最后变得一文不值 网易云热评 一 判断是否为虚拟机 cat proc scsi scsi dmesg grep i vir w who 查询目前登录
  • Webpack5资源配置(三)

    总述 wepack资源配置了四类资源加载除了js以外的配置资源 分别为asset recource资源 asset inline资源 asset source资源 asset通用资源类型 接下来 将配合前期webpack学习 系统的对以上四
  • MEMCACHE未授权访问漏洞利用及修复

    memcache是国外社区网站Live Journal的开发团队开发的高性能的分布式内存缓存服务器 一般的使用目的是 通过缓存数据库查询结果 减少数据库访问次数 以提高动态Web应用的速度 提高扩展性 memcache的默认端口是11211
  • LeeCode精选100题-【两数相加】-1

    这里写自定义目录标题 题干 思路 1 暴力枚举 这种没啥好说的 直接双层循环就可以 时间复杂度为O n 2 空间复杂度为O n 2 借助HashMap 两数想相加 题干 给定一个整数数组 nums 和一个整数目标值 target 请你在该数
  • Nginx 各种反向代理方式

    Nginx 反向代理 代理 http 实现负载均衡 nginx 代理 https nginx 代理tcp nginx 平滑升级 代理 http 本次实验后端为 geoserver 如下就可以实现基础的http反向代理 server list
  • 刷脸支付是一套完整解决商户方案的大数据

    支付宝刷脸支付服务还可以使用微信刷你的脸 支付宝刷脸支付服务接受第三方支付 因此它了面部识别支付的权利和产品的开发 对于用户来说 脸刷支付不但是一种收集功能 而且是一套完整解决方案的大数据 支付宝刷脸支付服务商不但解决了现金收集的问题 而且
  • Fiddler抓取HTTP请求详解

    Fiddler抓取HTTP请求 抓包是Fiddler的最基本的应用 以本博客为例 启动Fiddler之后 在浏览器中输入http baidu com 键入回车之后 在Fiddler的web session界面捕获到的HTTP请求如下图所示
  • ES6 迭代器Iterator

    Iterator是一种新的遍历机制 两个核心 1 迭代器是一个接口 能快捷的访问数据 通过Symbol iterator来创建迭代器 通过迭代器的next 方法 获取数据 2 迭代器是用于遍历数据结构的指针 类似于数据库的游标 const
  • Tomcat运行startup一闪而过

    右击startup bat选择用记事本打开 在最后加一个PAUSE 这样可以暂停住窗口 end PAUSE 一般是因为没有配置JAVA HOME这个环境变量导致的 只需要在系统环境变量里新加一个JAVA HOME 变量值填你的jdk安装路径
  • 计组

    目录 一 知识点 二 习题 参考文献 一 知识点 不同机器有不同的指令系统从计算机指令系统设计角度 可将计算机分为复杂指令系统计算机CISC Complex InstrucTIon Set Computer 和精简指令系统计算机RISC R
  • 匿名内部类

    关于匿名内部类还有如下两条规则 1 匿名内部类不能是抽象类 因为系统在创建匿名内部类的时候 会立即创建内部类的对象 因此不允许将匿名内部类 定义成抽象类 2 匿名内部类不等定义构造器 因为匿名内部类没有类名 所以无法定义构造器 但匿名内部类
  • java正则表达式匹配所有数字,包括带小数点的数字

    用于匹配的正则表达式为 1 9 d d 0 d 1 9 1 9 匹配1 9的数字 d 匹配数字 包括0 9 紧跟在 d 之后 表明可以匹配零个及多个数字 匹配小数点 紧跟在 之后 表明可以匹配零个或一个小数点 0 匹配一个数字0 其中的 1
  • 百度网盘提取码_百度网盘提取码查询工具,老菜建议大家收藏备用!

    APP菜园 打造属于我们自己的APP帝国 1 打开支付宝app 首页搜索 8221050 然后点击快捷功能 天天领红包 2 软件领取流程 1 认真阅读下软件介绍 2 找到图片下方的 获取链接 复制 3 打开手机上的浏览器粘贴链接搜索 百度云
  • Unity学习笔记(一)结构体的简单理解与应用

    Unity中的结构体的简介与使用 一 Unity中的结构体是什么 二 结构体与类的不同 一 Unity中的结构体是什么 简单来说 在 C 中 结构体是值类型数据结构 它使得一个单一变量可以存储各种数据类型的相关数据 例如我定义了一个结构体
  • Mybatis使用IN语句查询

    一 简介 在SQL语法中如果我们想使用in的话直接可以像如下一样使用 select from HealthCoupon where useType in 4 3 但是如果在MyBatis中的使用in的话 像如下去做的话 肯定会报错 Map
  • FFMPEG进阶系列02-ffmpeg命令详解3

    ffmpeg 的封装转换 FFmpeg的封装转换部分 主要是通过libavformat这部分来完成的功能 通过libavformat库进行mux和demux操作 多媒体文件的格式有很多种 但是还是有好多demux与mux的操作参数是公用的
  • 代码随想录算法训练营day1

    代码随想录算法训练营第一天 704 二分查找 27 移除元素 704 二分查找 题目链接 leetcode704 Binary search 暴力解法 class Solution public int search vector
  • 第01课:以太坊节点部署及基本命令操作

    第01课 以太坊节点部署及基本命令操作 区块链诞生自中本聪的比特币 自 2009 年以来 出现了各种各样的类比特币的基于公有区块链的数字货币 目前各个国家及企业机构都对区块链投入巨大的财力和人力来对区块链技术进行研究 官方文档 https