首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >以太坊环境搭建

以太坊环境搭建

作者头像
Al1ex
发布于 2023-08-10 01:08:31
发布于 2023-08-10 01:08:31
58600
代码可运行
举报
文章被收录于专栏:网络安全攻防网络安全攻防
运行总次数:0
代码可运行
文章前言

以太坊作为一个开源的区块链平台,已经在区块链领域中占有重要地位,对于想要了解和使用以太坊的人来说搭建一个以太坊开发环境是必不可少的步骤,本文将介绍如何搭建以太坊开发环境帮助读者更好地理解以太坊的工作原理和开发流程

搭建流程
更新系统

Step 1:更新Ubuntu系统

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get update 
sudo apt-get upgrade
GO语言环境

Step 1:下载Go语言安装包

https://golang.org/dl/

Step 2:安装go语言环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo tar -C /usr/local -xzf go1.20.4.linux-amd64.tar.gz

Step 3:然后将Go语言的bin目录添加到系统环境变量中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export PATH=$PATH:/usr/local/go/bin

此时上面的环境变量只是临时有效,我们可以将上述命令添加到.bashrc文件中使其永久生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export GOROOT=/usr/local/go  
export PATH=$PATH:$GOROOT/bin

Step 4:创建全局工作目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir $HOME/go

Step 5:将Go语言的工作目录添加到系统环境变量中

Step 6:验证Go语言安装是否成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go version
Node.js/Npm
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install curl
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sudo apt-get update && sudo apt-get install yarn
安装solc编译器
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo snap install solc
Ethereum安装

Step 1:下载Ethereum的客户端

https://geth.ethereum.org/downloads

Step 2:解压文件并将geth复制到/usr/bin目录下

Step 3:执行客户端查看帮助说明

Step 3:执行客户端查看帮助说明

详细内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
blockchain@ubuntu:~/geth-linux-amd64-1.11.6-ea9e62ca$ geth help
NAME:
   geth - the go-ethereum command line interface

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

VERSION:
   1.11.6-stable-ea9e62ca

COMMANDS:
   account                Manage accounts
   attach                 Start an interactive JavaScript environment (connect to node)
   console                Start an interactive JavaScript environment
   db                     Low level database operations
   dump                   Dump a specific block from storage
   dumpconfig             Export configuration values in a TOML format
   dumpgenesis            Dumps genesis block JSON configuration to stdout
   export                 Export blockchain into file
   export-preimages       Export the preimage database into an RLP stream
   import                 Import a blockchain file
   import-preimages       Import the preimage database from an RLP stream
   init                   Bootstrap and initialize a new genesis block
   js                     (DEPRECATED) Execute the specified JavaScript files
   license                Display license information
   makecache              Generate ethash verification cache (for testing)
   makedag                Generate ethash mining DAG (for testing)
   removedb               Remove blockchain and state databases
   show-deprecated-flags  Show flags that have been deprecated
   snapshot               A set of commands based on the snapshot
   verkle                 A set of experimental verkle tree management commands
   version                Print version numbers
   version-check          Checks (online) for known Geth security vulnerabilities
   wallet                 Manage Ethereum presale wallets
   help, h                Shows a list of commands or help for one command

GLOBAL OPTIONS:
   
    --log.rotate                   (default: false)
          Enables log file rotation
   
   ACCOUNT
   
    --allow-insecure-unlock        (default: false)
          Allow insecure account unlocking when account-related RPCs are exposed by http
   
    --keystore value              
          Directory for the keystore (default = inside the datadir)
   
    --lightkdf                     (default: false)
          Reduce key-derivation RAM & CPU usage at some expense of KDF strength
   
    --password value              
          Password file to use for non-interactive password input
   
    --pcscdpath value              (default: "/run/pcscd/pcscd.comm")
          Path to the smartcard daemon (pcscd) socket file
   
    --signer value                
          External signer (url or path to ipc file)
   
    --unlock value                
          Comma separated list of accounts to unlock
   
    --usb                          (default: false)
          Enable monitoring and management of USB hardware wallets
   
   ALIASED (deprecated)
   
    --nousb                        (default: false)
          Disables monitoring for and managing USB hardware wallets (deprecated)
   
    --whitelist value             
          Comma separated block number-to-hash mappings to enforce (<number>=<hash>)
          (deprecated in favor of --eth.requiredblocks)
   
   API AND CONSOLE
   
    --authrpc.addr value           (default: "localhost")
          Listening address for authenticated APIs
   
    --authrpc.jwtsecret value     
          Path to a JWT secret to use for authenticated RPC endpoints
   
    --authrpc.port value           (default: 8551)
          Listening port for authenticated APIs
   
    --authrpc.vhosts value         (default: "localhost")
          Comma separated list of virtual hostnames from which to accept requests (server
          enforced). Accepts '*' wildcard.
   
    --exec value                  
          Execute JavaScript statement
   
    --graphql                      (default: false)
          Enable GraphQL on the HTTP-RPC server. Note that GraphQL can only be started if
          an HTTP server is started as well.
   
    --graphql.corsdomain value    
          Comma separated list of domains from which to accept cross origin requests
          (browser enforced)
   
    --graphql.vhosts value         (default: "localhost")
          Comma separated list of virtual hostnames from which to accept requests (server
          enforced). Accepts '*' wildcard.
   
    --header value, -H value      
          Pass custom headers to the RPC server when using --remotedb or the geth attach
          console. This flag can be given multiple times.
   
    --http                         (default: false)
          Enable the HTTP-RPC server
   
    --http.addr value              (default: "localhost")
          HTTP-RPC server listening interface
   
    --http.api value              
          API's offered over the HTTP-RPC interface
   
    --http.corsdomain value       
          Comma separated list of domains from which to accept cross origin requests
          (browser enforced)
   
    --http.port value              (default: 8545)
          HTTP-RPC server listening port
   
    --http.rpcprefix value        
          HTTP path path prefix on which JSON-RPC is served. Use '/' to serve on all
          paths.
   
    --http.vhosts value            (default: "localhost")
          Comma separated list of virtual hostnames from which to accept requests (server
          enforced). Accepts '*' wildcard.
   
    --ipcdisable                   (default: false)
          Disable the IPC-RPC server
   
    --ipcpath value               
          Filename for IPC socket/pipe within the datadir (explicit paths escape it)
   
    --jspath value                 (default: .)
          JavaScript root path for `loadScript`
   
    --preload value               
          Comma separated list of JavaScript files to preload into the console
   
    --rpc.allow-unprotected-txs    (default: false)
          Allow for unprotected (non EIP155 signed) transactions to be submitted via RPC
   
    --rpc.enabledeprecatedpersonal (default: false)
          Enables the (deprecated) personal namespace
   
    --rpc.evmtimeout value         (default: 5s)
          Sets a timeout used for eth_call (0=infinite)
   
    --rpc.gascap value             (default: 50000000)
          Sets a cap on gas that can be used in eth_call/estimateGas (0=infinite)
   
    --rpc.txfeecap value           (default: 1)
          Sets a cap on transaction fee (in ether) that can be sent via the RPC APIs (0 =
          no cap)
   
    --ws                           (default: false)
          Enable the WS-RPC server
   
    --ws.addr value                (default: "localhost")
          WS-RPC server listening interface
   
    --ws.api value                
          API's offered over the WS-RPC interface
   
    --ws.origins value            
          Origins from which to accept websockets requests
   
    --ws.port value                (default: 8546)
          WS-RPC server listening port
   
    --ws.rpcprefix value          
          HTTP path prefix on which JSON-RPC is served. Use '/' to serve on all paths.
   
   DEVELOPER CHAIN
   
    --dev                          (default: false)
          Ephemeral proof-of-authority network with a pre-funded developer account, mining
          enabled
   
    --dev.gaslimit value           (default: 11500000)
          Initial block gas limit
   
    --dev.period value             (default: 0)
          Block period to use in developer mode (0 = mine only if transaction pending)
   
   ETHASH
   
    --ethash.cachedir value       
          Directory to store the ethash verification caches (default = inside the datadir)
   
    --ethash.cachesinmem value     (default: 2)
          Number of recent ethash caches to keep in memory (16MB each)
   
    --ethash.cacheslockmmap        (default: false)
          Lock memory maps of recent ethash caches
   
    --ethash.cachesondisk value    (default: 3)
          Number of recent ethash caches to keep on disk (16MB each)
   
    --ethash.dagdir value          (default: /home/blockchain/.ethash)
          Directory to store the ethash mining DAGs
   
    --ethash.dagsinmem value       (default: 1)
          Number of recent ethash mining DAGs to keep in memory (1+GB each)
   
    --ethash.dagslockmmap          (default: false)
          Lock memory maps for recent ethash mining DAGs
   
    --ethash.dagsondisk value      (default: 2)
          Number of recent ethash mining DAGs to keep on disk (1+GB each)
   
   ETHEREUM
   
    --bloomfilter.size value       (default: 2048)
          Megabytes of memory allocated to bloom-filter for pruning
   
    --config value                
          TOML configuration file
   
    --datadir value                (default: /home/blockchain/.ethereum)
          Data directory for the databases and keystore
   
    --datadir.ancient value       
          Root directory for ancient data (default = inside chaindata)
   
    --datadir.minfreedisk value   
          Minimum free disk space in MB, once reached triggers auto shut down (default =
          --cache.gc converted to MB, 0 = disabled)
   
    --db.engine value              (default: "leveldb")
          Backing database implementation to use ('leveldb' or 'pebble')
   
    --eth.requiredblocks value    
          Comma separated block number-to-hash mappings to require for peering
          (<number>=<hash>)
   
    --exitwhensynced               (default: false)
          Exits after block synchronisation completes
   
    --gcmode value                 (default: "full")
          Blockchain garbage collection mode ("full", "archive")
   
    --goerli                       (default: false)
          Görli network: pre-configured proof-of-authority test network
   
    --mainnet                      (default: false)
          Ethereum mainnet
   
    --networkid value              (default: 1)
          Explicitly set network id (integer)(For testnets: use --rinkeby, --goerli,
          --sepolia instead)
   
    --override.shanghai value      (default: 0)
          Manually specify the Shanghai fork timestamp, overriding the bundled setting
   
    --rinkeby                      (default: false)
          Rinkeby network: pre-configured proof-of-authority test network
   
    --sepolia                      (default: false)
          Sepolia network: pre-configured proof-of-work test network
   
    --snapshot                     (default: true)
          Enables snapshot-database mode (default = enable)
   
    --syncmode value               (default: snap)
          Blockchain sync mode ("snap", "full" or "light")
   
    --txlookuplimit value          (default: 2350000)
          Number of recent blocks to maintain transactions index for (default = about one
          year, 0 = entire chain)
   
   GAS PRICE ORACLE
   
    --gpo.blocks value             (default: 20)
          Number of recent blocks to check for gas prices
   
    --gpo.ignoreprice value        (default: 2)
          Gas price below which gpo will ignore transactions
   
    --gpo.maxprice value           (default: 500000000000)
          Maximum transaction priority fee (or gasprice before London fork) to be
          recommended by gpo
   
    --gpo.percentile value         (default: 60)
          Suggested gas price is the given percentile of a set of recent transaction gas
          prices
   
   LIGHT CLIENT
   
    --light.egress value           (default: 0)
          Outgoing bandwidth limit for serving light clients (kilobytes/sec, 0 =
          unlimited)
   
    --light.ingress value          (default: 0)
          Incoming bandwidth limit for serving light clients (kilobytes/sec, 0 =
          unlimited)
   
    --light.maxpeers value         (default: 100)
          Maximum number of light clients to serve, or light servers to attach to
   
    --light.nopruning              (default: false)
          Disable ancient light chain data pruning
   
    --light.nosyncserve            (default: false)
          Enables serving light clients before syncing
   
    --light.serve value            (default: 0)
          Maximum percentage of time allowed for serving LES requests (multi-threaded
          processing allows values over 100)
   
    --ulc.fraction value           (default: 75)
          Minimum % of trusted ultra-light servers required to announce a new head
   
    --ulc.onlyannounce             (default: false)
          Ultra light server sends announcements only
   
    --ulc.servers value           
          List of trusted ultra-light servers
   
   LOGGING AND DEBUGGING
   
    --fakepow                      (default: false)
          Disables proof-of-work verification
   
    --log.backtrace value         
          Request a stack trace at a specific logging statement (e.g. "block.go:271")
   
    --log.compress                 (default: false)
          Compress the log files
   
    --log.debug                    (default: false)
          Prepends log messages with call-site location (file and line number)
   
    --log.file value              
          Write logs to a file
   
    --log.format value            
          Log format to use (json|logfmt|terminal)
   
    --log.maxage value             (default: 30)
          Maximum number of days to retain a log file
   
    --log.maxbackups value         (default: 10)
          Maximum number of log files to retain
   
    --log.maxsize value            (default: 100)
          Maximum size in MBs of a single log file
   
    --log.vmodule value           
          Per-module verbosity: comma-separated list of <pattern>=<level> (e.g.
          eth/*=5,p2p=4)
   
    --nocompaction                 (default: false)
          Disables db compaction after import
   
    --pprof                        (default: false)
          Enable the pprof HTTP server
   
    --pprof.addr value             (default: "127.0.0.1")
          pprof HTTP server listening interface
   
    --pprof.blockprofilerate value (default: 0)
          Turn on block profiling with the given rate
   
    --pprof.cpuprofile value      
          Write CPU profile to the given file
   
    --pprof.memprofilerate value   (default: 524288)
          Turn on memory profiling with the given rate
   
    --pprof.port value             (default: 6060)
          pprof HTTP server listening port
   
    --remotedb value              
          URL for remote database
   
    --trace value                 
          Write execution trace to the given file
   
    --verbosity value              (default: 3)
          Logging verbosity: 0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail
   
   METRICS AND STATS
   
    --ethstats value              
          Reporting URL of a ethstats service (nodename:secret@host:port)
   
    --metrics                      (default: false)
          Enable metrics collection and reporting
   
    --metrics.addr value          
          Enable stand-alone metrics HTTP server listening interface.
   
    --metrics.expensive            (default: false)
          Enable expensive metrics collection and reporting
   
    --metrics.influxdb             (default: false)
          Enable metrics export/push to an external InfluxDB database
   
    --metrics.influxdb.bucket value (default: "geth")
          InfluxDB bucket name to push reported metrics to (v2 only)
   
    --metrics.influxdb.database value (default: "geth")
          InfluxDB database name to push reported metrics to
   
    --metrics.influxdb.endpoint value (default: "http://localhost:8086")
          InfluxDB API endpoint to report metrics to
   
    --metrics.influxdb.organization value (default: "geth")
          InfluxDB organization name (v2 only)
   
    --metrics.influxdb.password value (default: "test")
          Password to authorize access to the database
   
    --metrics.influxdb.tags value  (default: "host=localhost")
          Comma-separated InfluxDB tags (key/values) attached to all measurements
   
    --metrics.influxdb.token value (default: "test")
          Token to authorize access to the database (v2 only)
   
    --metrics.influxdb.username value (default: "test")
          Username to authorize access to the database
   
    --metrics.influxdbv2           (default: false)
          Enable metrics export/push to an external InfluxDB v2 database
   
    --metrics.port value           (default: 6060)
          Metrics HTTP server listening port.
          Please note that --metrics.addr must be set
          to start the server.
   
   MINER
   
    --mine                         (default: false)
          Enable mining
   
    --miner.etherbase value       
          0x prefixed public address for block mining rewards
   
    --miner.extradata value       
          Block extra data set by the miner (default = client version)
   
    --miner.gaslimit value         (default: 30000000)
          Target gas ceiling for mined blocks
   
    --miner.gasprice value         (default: 0)
          Minimum gas price for mining a transaction
   
    --miner.newpayload-timeout value (default: 2s)
          Specify the maximum time allowance for creating a new payload
   
    --miner.notify value          
          Comma separated HTTP URL list to notify of new work packages
   
    --miner.notify.full            (default: false)
          Notify with pending block headers instead of work packages
   
    --miner.noverify               (default: false)
          Disable remote sealing verification
   
    --miner.recommit value         (default: 2s)
          Time interval to recreate the block being mined
   
    --miner.threads value          (default: 0)
          Number of CPU threads to use for mining
   
   MISC
   
    --help, -h                     (default: false)
          show help
   
    --synctarget value            
          File for containing the hex-encoded block-rlp as sync target(dev feature)
   
    --version, -v                  (default: false)
          print the version
   
   NETWORKING
   
    --bootnodes value             
          Comma separated enode URLs for P2P discovery bootstrap
   
    --discovery.dns value         
          Sets DNS discovery entry points (use "" to disable DNS)
   
    --discovery.port value         (default: 30303)
          Use a custom UDP port for P2P discovery
   
    --identity value              
          Custom node name
   
    --maxpeers value               (default: 50)
          Maximum number of network peers (network disabled if set to 0)
   
    --maxpendpeers value           (default: 0)
          Maximum number of pending connection attempts (defaults used if set to 0)
   
    --nat value                    (default: "any")
          NAT port mapping mechanism (any|none|upnp|pmp|pmp:<IP>|extip:<IP>)
   
    --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)
   
    --nodiscover                   (default: false)
          Disables the peer discovery mechanism (manual peer addition)
   
    --port value                   (default: 30303)
          Network listening port
   
    --v5disc                       (default: false)
          Enables the experimental RLPx V5 (Topic Discovery) mechanism
   
   PERFORMANCE TUNING
   
    --cache value                  (default: 1024)
          Megabytes of memory allocated to internal caching (default = 4096 mainnet full
          node, 128 light mode)
   
    --cache.blocklogs value        (default: 32)
          Size (in number of blocks) of the log cache for filtering
   
    --cache.database value         (default: 50)
          Percentage of cache memory allowance to use for database io
   
    --cache.gc value               (default: 25)
          Percentage of cache memory allowance to use for trie pruning (default = 25% full
          mode, 0% archive mode)
   
    --cache.noprefetch             (default: false)
          Disable heuristic state prefetch during block import (less CPU and disk IO, more
          time waiting for data)
   
    --cache.preimages              (default: false)
          Enable recording the SHA3/keccak preimages of trie keys
   
    --cache.snapshot value         (default: 10)
          Percentage of cache memory allowance to use for snapshot caching (default = 10%
          full mode, 20% archive mode)
   
    --cache.trie value             (default: 15)
          Percentage of cache memory allowance to use for trie caching (default = 15% full
          mode, 30% archive mode)
   
    --cache.trie.journal value     (default: "triecache")
          Disk journal directory for trie cache to survive node restarts
   
    --cache.trie.rejournal value   (default: 1h0m0s)
          Time interval to regenerate the trie cache journal
   
    --fdlimit value                (default: 0)
          Raise the open file descriptor resource limit (default = system fd limit)
   
   TRANSACTION POOL
   
    --txpool.accountqueue value    (default: 64)
          Maximum number of non-executable transaction slots permitted per account
   
    --txpool.accountslots value    (default: 16)
          Minimum number of executable transaction slots guaranteed per account
   
    --txpool.globalqueue value     (default: 1024)
          Maximum number of non-executable transaction slots for all accounts
   
    --txpool.globalslots value     (default: 5120)
          Maximum number of executable transaction slots for all accounts
   
    --txpool.journal value         (default: "transactions.rlp")
          Disk journal for local transaction to survive node restarts
   
    --txpool.lifetime value        (default: 3h0m0s)
          Maximum amount of time non-executable transaction are queued
   
    --txpool.locals value         
          Comma separated accounts to treat as locals (no flush, priority inclusion)
   
    --txpool.nolocals              (default: false)
          Disables price exemptions for locally submitted transactions
   
    --txpool.pricebump value       (default: 10)
          Price bump percentage to replace an already existing transaction
   
    --txpool.pricelimit value      (default: 1)
          Minimum gas price limit to enforce for acceptance into the pool
   
    --txpool.rejournal value       (default: 1h0m0s)
          Time interval to regenerate the local transaction journal
   
   VIRTUAL MACHINE
   
    --vmdebug                      (default: false)
          Record information useful for VM and contract debugging
   

COPYRIGHT:
   Copyright 2013-2023 The go-ethereum Authors

这条命令的功能包括:

  • 以快速同步的方式启动Geth,通过与以太坊主链进行数据交换,既避免了大量下载历史数据也避免了由此带来的CPU过载
  • 启动了Geth内嵌的交互平台JavaScript控制台,由此可以调用所有官方的Web3函数和Geth自身的应用程序接口
以太坊测试链完全节点方式

这种方式主要是面向开发人员的,在创建真实的合约之前,人们会倾向于在开发、编程、测试过程中不产生真实的资金消耗,因为这样会大幅增加开发成本,但如果在编程和开发期间就采用上述第一种方式直接在以太坊主网络上进行工作,那么由于以太坊的Gas机制将会产生大量的Gas消耗,所以开发人员普遍倾向于在测试网络上开展工作,而在测试网络上合约只使用虚拟的以太币并不产生实际的资金消耗,只有在通过测试网络的验证、完全开发好后,合约才能被部署到以太坊主网络上,这就是基于以太坊测试网络的完全节点方式存在的意义,具体的命令如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
geth --networkid 3 console

备注:以太坊的networkid参数是一个整数,用于标识特定的以太坊网络,这个参数通常在启动以太坊客户端时指定以确保客户端连接到正确的网络,以下是几个常见的networkid参数值

  • 1:主网(Mainnet)
  • 2:Morden测试网(Morden Testnet)
  • 3:Ropsten测试网(Ropsten Testnet)
  • 4:Rinkeby测试网(Rinkeby Testnet)
  • 42:Kovan测试网(Kovan Testnet)
Rinkeby测试网络全节点方式

以太坊社区的一些成员开发了Rinkeby测试网络,这是基于"授权证明(Proof-of-Authority)"的,这个网络更轻巧、更安全,但是只支持Geth,具体的进入命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
geth --rinkeby console
文末小结

搭建以太坊开发环境需要一些基础知识和技能,但是一旦完成就可以开始构建智能合约和开发去中心化应用程序了,通过本文提供的步骤和资源,希望读者能够成功地搭建自己的以太坊开发环境并在以太坊生态系统中发挥创造力和创新精神

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 七芒星实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
以太坊交互工具
以太坊提供了Geth客户端用于管理API,我们可以在终端输入geth help查看其具体使用方法:
Al1ex
2021/07/21
2K0
以太坊交互工具
区块链开发(三)以太坊客户端命令行选项汇总
本篇博客的内容可通过以下命令在客户端中进行查看: geth --help 也可以访问github上的wiki文档查看,地址为: https://github.com/ethereum/go-ethereum/wiki/Command-Line-Options 具体内容 NAME: geth - go-ethereum命令行接口 USAGE: geth [options] command [command options] [arguments...] VERSION: 1.4.11-s
程序新视界
2022/05/06
5050
以太坊客户端Geth命令用法-参数详解
Geth在以太坊智能合约开发中最常用的工具(必备开发工具),一个多用途的命令行工具。 熟悉Geth可以让我们有更好的效率,大家可收藏起来作为Geth命令用法手册。 本文主要是对geth help的翻译,基于最新的geth 1.7.3-stable版本。 如果你还不知道geth是什么,请先阅读入门篇:以太坊是什么。 以下开始正文。 命令用法 geth [选项] 命令 [命令选项] [参数…] 版本: 1.7.3-stable 命令: account 管理账户 attach 启动交互式JavaSc
Tiny熊
2018/06/21
2.4K0
以太坊搭建私有链
在以太坊上部署智能合约、发起交易需要花费以太币。而私链和公有链没有关系,不用同步大量的数据,也不用花钱购买以太币,可以很好的满足智能合约的开发和测试要求,而且在私有链上开发的智能合约可以很容易的部署到以太坊的公有链上。
foochane
2019/05/23
1.8K0
理解以太坊: Go-Ethereum 源码剖析(0): Geth Start
Geth[2] 是基于 Go 语言开发以太坊的客户端,它实现了 Ethereum 协议(黄皮书)中所有需要的实现的功能模块,包括状态管理,挖矿,P2P 网络通信,密码学,数据库,EVM 解释器等。我们可以通过启动 Geth 来运行一个 Ethereum 的节点。Go-ethereum 是包含了 Geth 在内的一个代码库,它包含了 Geth,以及编译 Geth 所需要的其他代码。在本系列中,我们会深入 Go-ethereum 代码库,从 High-level 的 API 接口出发,沿着 Ethereum 主 Workflow,从而理解 Ethereum 具体实现的细节。
Tiny熊
2022/05/25
2.3K0
ethereum-编译geth
如果是 windows 机器,建议装个虚拟机操作,在Linux环境下使用起来更顺手一些。
潇洒
2023/10/23
3380
以太坊私链入门
中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com>
netkiller old
2018/02/02
5.1K2
公链启动过程
以太坊官方提供了Go、C++、Python各个版本的实现,具体可以在官方GitHub(https://github.com/ethereum)中进行查找:
Al1ex
2021/07/21
1K0
公链启动过程
搭建以太坊私有链
区块链技术正在逐渐走向成熟,以太坊作为区块链领域的重要代表被广泛应用于智能合约、去中心化应用等领域,然而公有链上的交易需要消耗大量的手续费,且数据的公开性也限制了其在某些场景下的应用。因此搭建以太坊私有链成为了一种更加灵活、高效、安全的解决方案,本文将介绍如何搭建以太坊私有链帮助读者更好地理解和应用区块链技术
Al1ex
2023/09/07
1.8K1
搭建以太坊私有链
以太坊win平台和Linux 私链搭建,交易,添加多节点
先上一篇的以太坊的私有搭建,交易,节点连接,结合搭建的步骤对以太坊进行深入介绍。本文介绍的方式在win10 和ubuntu16.04 的方式测试过。 第一步:geth的安装,请直接移步:https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum 或者百度其他博客。为了方便操作,windows 平台在安装完成geth后 ,最好将geth.exe 所在的目录添加到Path环境变量中以便于开发。linux 的方式推荐使用ppa的方式安装。如果不是也推荐奖geth 添加到环境变量里面。 第二步:创建创世块 先不要想太多直接复制我的创世块用: 新建一个文件夹名为mynode,然后在mynode 文件夹里面创建一个文件
地球流浪猫
2018/08/02
6220
以太坊·单机多实例演示
摘要: 这是一篇演示如何使用一台服务器,运行多个以太坊客户端,并且将节点互联,完成两个节点之间的转账操作。
netkiller old
2018/02/22
1.6K1
探路以太坊
关键字:以太坊,加密货币,crowdsale,geth,console,web3.js 以太坊简介 一句话简介:以太坊是一个基于功能齐全的编程语言构建的众多去中心化区块链应用的平台。 下面来解读一下这句话: 平台:首先以太坊是一个平台,这个平台上面有很多应用。 应用:这些应用是是去中心化的,基于区块链技术。所以这些应用可以实现永不停歇,因为它是分布式的,去中心化的,基于P2P网络的,这些应用被管理在以太坊钱包上面。 钱包:以太坊钱包,本质上以太坊钱包也是其中一个应用,它是一个网关,可以管理所有基
文彬
2018/05/03
2.1K0
以太坊区块设计
区块链是由包含交易的区块按照时间先后顺序依次连接起来的数据结构,这种数据结构是一个形象的链表结构,所有数据有序地链接在同一条区块链上,每个区块通过一个hash指针指向前一个区块,hash指针其实是前一个区块头进行SHA256哈希计算得到的,通过这个哈希值,可以唯一的识别一个区块,然后将每个区块连接到其区块头中前一个区块哈希值代币的区块后面,从而构建出一条完整的区块链。
Al1ex
2023/05/26
2.3K0
以太坊区块设计
以太坊“后偷渡时代”盗币之“拾荒攻击”
作者:Sissel@知道创宇404区块链安全研究团队 发布时间:2018/08/20
Seebug漏洞平台
2018/09/30
1.6K0
以太坊“后偷渡时代”盗币之“拾荒攻击”
以太坊源码分析之随心笔记
table.go 定期随机选取一些节点找他们要他们的节点,放到本地,也就是一个随机找节点的table 里头的bucket 和 nodesByDistance都是为了找节点方便(这里已经有pingpong了)使用的是udp.go
qudamahcui
2018/09/11
2.4K0
深入浅出谈以太坊智能合约
1什么是合约合约是代码(它的功能)和数据(它的状态)的集合,存在于以太坊区块链的特定地址。 合约账户能够在彼此之间传递信息,进行图灵完备的运算。合约依靠被称作以太坊虚拟机(EVM) 字节代码(以太坊特有的二进制格式)上的区块链运行。 合约很典型地用诸如Solidity等高级语言写成,然后编译成字节代码上传到区块链上。 也有其他语言可以用于编写智能合约如Serpent和LLL,在下一节会进一步阐述。去中心化应用开发资源列出了综合的开发环境,帮助你用这些语言开发的开发者工具,提供测试和部署支持等功能。 2以太坊
区块链大本营
2018/05/10
8800
以太坊如何搭建私有连联盟链
如何启动geth节点对大家来说已经不是什么难事,今天博主就带大家学习一下如何搭建两个节点的联盟链。
程序新视界
2022/05/06
1.4K0
用Geth设置基于POA权利证明的私有以太网网络
目标:逐步指导,帮助你使用权威证明共识引擎(也称为clique)设置本地私有以太网网络。
笔阁
2019/03/20
2.7K0
用Geth设置基于POA权利证明的私有以太网网络
基于以太坊搭建私有链
目前业界关于区块链尚无权威统一的定义。区块链简单来说,是一种链式的数据结构,区块之间按照时间顺序连接,利用密码学方式保证数据不易串改和不易伪造,并在网络所有节点进行分布式存储的共享账本。
字节流动
2020/06/02
1.6K0
基于以太坊搭建私有链
基于docker的以太坊集群的私有链开发环境
转载博文:https://www.jianshu.com/p/8af386ec5f9e
墨文
2020/02/28
2.8K0
相关推荐
以太坊交互工具
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档