欢迎您, 来到 宁时修博客.^_^

区块链02---以太坊ethereum节点部署

2018/07/26 林木立 区块链 1499
以太坊节点部署

一、安装依赖

        gcc-c++  : c/c++编译工具,用于Golang下部分c库的编译及truffle组件的编译。

        ntp  :网络时间同步,Ethereum的RPC网络需要时间同步。

        nodejs  :Ethereum前端开发JavaScript包管理软件


yum install bzip2 gcc-c++ ntp nodejs cmake git -y


二、安装Golang


cd /usr/local/src/
wget https://dl.google.com/go/go1.10.linux-amd64.tar.gz
tar xf go1.10.linux-amd64.tar.gz -C /usr/local/
echo 'export GOROOT=/usr/local/go' >> /etc/profile
echo 'export PATH=$PATH:$GOROOT/bin' >> /etc/profile
echo 'export GOPATH=/data/go' >> /etc/profile
echo 'export PATH=$PATH:$GOPATH/bin' >> /etc/profile
source /etc/profile


        验证:

go version
go version go1.10 linux/amd64



三、编译go-ethereum

    

cd /usr/local/src/
git clone https://github.com/ethereum/go-ethereum.git
mv go-ethereum /usr/local/
cd ../go-ethereum/
make all


        把geth加入PATH:


echo 'export PATH=$PATH:/usr/local/go-ethereum/build/bin' >> /etc/profile
source /etc/profile


        验证:

geth version
 
Geth
Version: 1.8.13-unstable
Git Commit: 1064b9e69189efd65c5de9149f37614cde9b5944
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.10
Operating System: linux
GOPATH=/data/go
GOROOT=/usr/local/go



四、运行

       启动时间同步:

systemctl enable ntpd
systemctl start ntpd


        正式环境启动:

nohup geth --datadir "/data/database/eth/" --syncmode "fast" -cache 2048 --rpc --rpcaddr "0.0.0.0" --rpcport "3333" --rpcapi "eth,net,web3,personal,admin" --trie-cache-gens 3000 > /data/database/eth/block.log 2>&1 &

        

        以太坊测试服务(控制台)

geth --networkid "3" --datadir "/data/database/eth" --testnet --syncmode "fast" -cache 2048 --rpc --rpcaddr "0.0.0.0" --rpcport "3334" --rpcapi "eth,net,web3,personal,admin" console 2 >> /data/database/eth/geth.log


五、geth命令参数


NAME:
   geth - the go-ethereum command line interface

   Copyright 2013-2018 The go-ethereum Authors

USAGE:
   geth [options] command [command options] [arguments...]
   geth [选项] 命令 [命令选项] [参数]
   
VERSION:
   1.8.13-unstable-1064b9e6
   
COMMANDS: 命令
   account           Manage accounts
                     管理账户
                     
   attach            Start an interactive JavaScript environment (connect to node)
                     启动交互式JavaScript环境(连接到节点)
                     
   bug               opens a window to report a bug on the geth repo
                     上报bug Issues
                     
   console           Start an interactive JavaScript environment
                     启动交互式JavaScript环境
                     
   copydb            Create a local chain from a target chaindata folder
                     从文件夹创建本地链
                     
   dump              Dump a specific block from storage
                     dump(分析)一个特定的块存储
                     
   dumpconfig        Show configuration values
                     显示配置值
                     
   export            Export blockchain into file
                     导出区块链到文件
                     
   export-preimages  Export the preimage database into an RLP stream
                     导出原像数据库到RLP流
                     
   import            Import a blockchain file
                     导入一个区块链文件
                     
   import-preimages  Import the preimage database from an RLP stream
                     从RLP流导入原像数据库
                     
   init              Bootstrap and initialize a new genesis block
                     启动并初始化一个新的创世块
                     
   js                Execute the specified JavaScript files
                     执行指定的JavaScript文件(多个)
                     
   license           Display license information
                     显示许可信息
                     
   makecache         Generate ethash verification cache (for testing)
                     生成ethash验证缓存(用于测试)
                     
   makedag           Generate ethash mining DAG (for testing)
                     生成ethash挖矿DAG(用于测试)
                     
   monitor           Monitor and visualize node metrics
                     监控和可视化节点指标
                     
   removedb          Remove blockchain and state databases
                     删除区块链和状态数据库
                     
   version           Print version numbers
   wallet            Manage Ethereum presale wallets
                     管理Ethereum预售钱包
                     
   help, h           Shows a list of commands or help for one command
                     显示命令列表或一个命令
   
ETHEREUM OPTIONS:
  --config value 
              TOML configuration file
              TOML配置文件
              
  --datadir "/root/.ethereum"  
              Data directory for the databases and keystore
              数据库和keystore密钥的数据目录
              
  --keystore      
              Directory for the keystore (default = inside the datadir)
              keystore存放目录(默认在datadir内)
              
  --nousb     
              Disables monitoring for and managing USB hardware wallets
              禁用监控和管理USB硬件钱包
              
  --networkid value
  Network identifier (integer, 1=Frontier, 2=Morden (disused), 3=Ropsten, 4=Rinkeby) (default: 1)
  网络标识符(整型,1=Frontier,2=Morden(弃用),3=Ropsten,4=Rinkeby)(默认:1)
  
  --testnet
              Ropsten network: pre-configured proof-of-work test network
              Ropsten网络:预先配置的POW(proof-of-work)测试网络
              
  --rinkeby   
              Rinkeby network: pre-configured proof-of-authority test network
              Rinkeby网络:预先配置的POA(proof-of-authority)测试网络
              
  --syncmode "fast" 
              Blockchain sync mode ("fast", "full", or "light")
              区块链同步模式("fast","full",或"light")
              
  --gcmode value
         Blockchain garbage collection mode ("full", "archive") (default: "full")
         区块链垃圾收集模式("full","archive")(默认:"full")
         
  --ethstats value
         Reporting URL of a ethstats service (nodename:secret@host:port)
         上报ethstats service的URL
         
  --identity value
              Custom node name
              自定义节点名字
              
  --lightserv value
              Maximum percentage of time allowed for serving LES requests (0-90) (default: 0)
              允许LFS请求时间最大百分比(0-90)(默认:0)
              
  --lightpeers value
              Maximum number of LES client peers (default: 100)
              最大LES client peers数量(默认:20)
              
  --lightkdf  
            Reduce key-derivation RAM & CPU usage at some expense of KDF strength
            在KDF强度消费时 降低key-derivation的RAM和CPU使用
  
DEVELOPER CHAIN OPTIONS: 开发者(模式)选项
  --dev   
              Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled
              使用POA(proof-of-authority)共识网络,默认预分配一个开发者账户并且会自动开启挖矿
              
  --dev.period value
  Block period to use in developer mode (0 = mine only if transaction pending) (default: 0)
  开发者模式下挖矿周期(0=仅在交易时)(默认:0)
  
ETHASH OPTIONS:
  --ethash.cachedir
  Directory to store the ethash verification caches (default = inside the datadir)
  ethash验证缓存目录(默认在datadir目录内)
  
  --ethash.cachesinmem value、
        Number of recent ethash caches to keep in memory (16MB each) (default: 2)
        在内存保存的最近的ethash缓存个数(每个缓存16MB)(默认:2)
        
  --ethash.cachesondisk value
          Number of recent ethash caches to keep on disk (16MB each) (default: 3)
          在磁盘保存的最近的ethash缓存个数(每个缓存16MB)(默认:3)
          
  --ethash.dagdir "/root/.ethash"
        Directory to store the ethash mining DAGs (default = inside home folder)
        存放ethash DAGs的目录(默认在用户home目录)
        
  --ethash.dagsinmem value
   Number of recent ethash mining DAGs to keep in memory (1+GB each) (default: 1)
   在内存保存的最近的ethash DAGs个数(每个1GB以上)(默认:1)
   
  --ethash.dagsondisk value
    Number of recent ethash mining DAGs to keep on disk (1+GB each) (default: 2)
    在磁盘保存的最近的ethash DAGs个数(每个1GB以上)(默认: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")
  本地交易的磁盘日志:用于节点重启(默认:"transactions.rlp")
  
  --txpool.rejournal value
  Time interval to regenerate the local transaction journal (default: 1h0m0s)
  重新生成本地交易日志的时间间隔(默认:1小时)
  
  --txpool.pricelimit value
  Minimum gas price limit to enforce for acceptance into the pool (default: 1)
  加入交易池的最小的gas价格限制(默认:1)
  
  --txpool.pricebump value
  Price bump percentage to replace an already existing transaction (default: 10)
  价格波动百分比(相对之前已有交易)(默认:10)
  
  --txpool.accountslots value
  Minimum number of executable transaction slots guaranteed per account (default: 16)
  每个账户保证可执行的最少交易槽数量(默认:16)
  
  --txpool.globalslots value
  Maximum number of executable transaction slots for all accounts (default: 4096)
  所有账户可执行的最大交易槽数量(默认4096)
  
  --txpool.accountqueue value
  Maximum number of non-executable transaction slots permitted per account (default: 64)
  每个账户允许的最多非可执行交易槽数量(默认:64)
  
  --txpool.globalqueue value
  Maximum number of non-executable transaction slots for all accounts (default: 1024)
  所有账户非可执行最大交易槽数量(默认:1024)
  
  --txpool.lifetime value
  Maximum amount of time non-executable transaction are queued (default: 3h0m0s)
  非可执行交易最大入队时间(默认:3小时)
  
PERFORMANCE TUNING OPTIONS: 性能调优选项
  --cache value
      Megabytes of memory allocated to internal caching (default: 1024)
      分配给内部缓存的内存MB(最低16MB,数据库强制要求)(默认:1024)
      
  --cache.database value
      Percentage of cache memory allowance to use for database io (default: 75)
      用于数据库IO的高速缓存 内存百分比(默认:75) 
                               
  --cache.gc value
      Percentage of cache memory allowance to use for trie pruning (default: 25)
      用于trie修剪的高速缓存 内存百分比(默认:25)
      
  --trie-cache-gens value
      Number of trie node generations to keep in memory (default: 120)
      保持在内存中产生的trie节点数量(默认: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:  API和控制台选项
  --rpc
          Enable the HTTP-RPC server
          启用HTTP-RPC服务器
          
  --rpcaddr value
          HTTP-RPC server listening interface (default: "localhost")
          HTTP-RPC服务器接口地址(默认值:"localhost")
          
  --rpcport value
          HTTP-RPC server listening port (default: 8545)
          HTTP-RPC服务器监听端口(默认:8545)
          
  --rpcapi value
          API's offered over the HTTP-RPC interface
          基于HTTP-RPC接口提供的API
          
  --ws
          Enable the WS-RPC server
          启用WS-RPC服务器
          
  --wsaddr value
          WS-RPC server listening interface (default: "localhost")
          WS-RPC服务器监听的接口地址(默认:"localhost")
          
  --wsport value
          WS-RPC server listening port (default: 8546)
          WS-RPC服务器监听的端口(默认:8546)
          
  --wsapi value
          API's offered over the WS-RPC interface
          基于WS-RPC的接口提供的API
          
  --wsorigins value
          Origins from which to accept websockets requests
          允许websockets请求的源
          
  --ipcdisable
          Disable the IPC-RPC server
          禁用IPC-RPC服务器
          
  --ipcpath
       Filename for IPC socket/pipe within the datadir (explicit paths escape it)
       包含在datadir里的IPC socket/pipe文件名(转义过的显示路径)
       
  --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")
         从逗号分隔的虚拟主机列表中接受请求(服务器强制),接受"*"通配符(默认:"localhost")
         
  --jspath loadScript
           JavaScript root path for loadScript (default: ".")
           JavaScript加载脚本的根路径(默认:".")
           
  --exec value
          Execute JavaScript statement
          执行JavaScript语句(只能结合console/attach使用)
          
  --preload value
          Comma separated list of JavaScript files to preload into the console
          预加载到控制台的JavaScript文件列表(逗号分隔)
  
NETWORKING OPTIONS: 网络选项
  --bootnodes value
  Comma separated enode URLs for P2P discovery bootstrap (set v4+v5 instead for light servers)
  用于P2P发现引导的enode URLs(逗号分隔)(对于light servers用v4+v5代替)
  
  --bootnodesv4 value
  Comma separated enode URLs for P2P v4 discovery bootstrap (light server, full nodes)
  用于P2P v4发现引导的enode URLs(逗号分隔)(light server,full node(全节点))
  
  --bootnodesv5 value
  Comma separated enode URLs for P2P v5 discovery bootstrap (light server, light nodes)
  用于P2P v5发现引导的enode URLs(逗号分隔)(light server,light nodes(轻节点))
  
  --port value
          Network listening port (default: 30303)
          网络监听端口(默认:30303)
          
  --maxpeers value
     Maximum number of network peers (network disabled if set to 0) (default: 25)
     最大的网络节点数量(如果设置为0,网络将被禁用)(默认:25)
     
  --maxpendpeers value
  Maximum number of pending connection attempts (defaults used if set to 0) (default: 0)
  最大尝试连接的数量(如果设置为0,则将使用默认值)(默认:0)
  
  --nat value
       NAT port mapping mechanism (any|none|upnp|pmp|extip:<IP>) (default: "any")
       NAT 端口映射机制(any|none|upnp|pmp|extip:<IP>)(默认:"any")
       
  --nodiscover
       Disables the peer discovery mechanism (manual peer addition)
       禁用节点发现机制(手动添加节点)
       
  --v5disc
       Enables the experimental RLPx V5 (Topic Discovery) mechanism
       启用实验性的RLPx v5(Topic发现)机制
       
  --netrestrict value
       Restricts network communication to the given IP networks (CIDR masks)
       限制指定IP网络的通信(CIDR掩码)
       
  --nodekey value
       P2P node key file
       P2P节点密钥文件
       
  --nodekeyhex value
       P2P node key as hex (for testing)
       十六进制的P2P节点密钥(用于测试)
  
MINER OPTIONS:  矿工选项
  --mine
          Enable mining
          启动挖矿
          
  --minerthreads value
          Number of CPU threads to use for mining (default: 2)
          挖矿使用的CPU线程数量(默认:2)
          
  --etherbase value
  Public address for block mining rewards (default = first account created) (default: "0")
  挖矿奖励地址(默认:第一个创建的账户)(默认:"0")
  
  --targetgaslimit value
  Target gas limit sets the artificial target gas floor for the blocks to mine (default: 4712388)
  目标gas限制:设置最低gas限制(低于这个不会被挖?)(默认:4712388)
  
  --gasprice "18000000000"
          Minimal gas price to accept for mining a transactions
          挖矿接受交易的最低gas价格
          
  --extradata value
          Block extra data set by the miner (default = client version)
          矿工设置的额外block数据(默认:client version)
          
  
GAS PRICE ORACLE OPTIONS: GAS价格选项
  --gpoblocks value
          Number of recent blocks to check for gas prices (default: 20)
          用于检查gas价格的最近block的个数(默认:20)
          
  --gpopercentile value
  Suggested gas price is the given percentile of a set of recent transaction gas prices (default: 60)
  建议gas价格参考最近交易的gas价的百分位数(默认:50)
  
VIRTUAL MACHINE OPTIONS: 虚拟机选项
  --vmdebug
          Record information useful for VM and contract debugging
          记录VM及合约调试信息
  
LOGGING AND DEBUGGING OPTIONS:  日志和调试选项
  --fakepow
          Disables proof-of-work verification
          禁用proof-of-work验证
          
  --nocompaction
          Disables db compaction after import
          禁用导入后db压缩
          
  --verbosity value
  Logging verbosity: 0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (default: 3)
  日志详细度:0=silent,1=error,2=warn,3=info,4=debu,5=detail(默认:3)
  
  --vmodule value
          Per-module verbosity: comma-separated list of <pattern>=<level> (e.g. eth/*=5,p2p=4)
          每个模块详细度:以<pattern>=<level>的逗号分隔列表(比如 eth/*=5,p2p=4)
          
  --backtrace value
      Request a stack trace at a specific logging statement (e.g. "block.go:271")
      请求特定日志记录堆栈跟踪(比如 "block.go:271")
      
  --debug
          Prepends log messages with call-site location (file and line number)
          突出显示调试位置日志(文件名及行号)
          
  --pprof
          Enable the pprof HTTP server
          启用pprof HTTP服务器
          
  --pprofaddr value
          pprof HTTP server listening interface (default: "127.0.0.1")
          pprof HTTP服务器监听接口(默认:"127.0.0.1")
          
  --pprofport value
          pprof HTTP server listening port (default: 6060)
          pprof HTTP服务器监听端口(默认:6060)
          
  --memprofilerate value
          Turn on memory profiling with the given rate (default: 524288)
          按指定频率打开memory profiling(默认:524288)
          
  --blockprofilerate value
          Turn on block profiling with the given rate (default: 0)
          按指定频率打开block profiling(默认:0)
          
  --cpuprofile value
          Write CPU profile to the given file
          将CPU profile写入指定文件
          
  --trace value
          Write execution trace to the given file
          将execution trace写入指定文件
          
  
METRICS AND STATS OPTIONS:   度量和统计选项
  --metrics
          Enable metrics collection and reporting
          启用指标收集和报告
          
  --metrics.influxdb
          Enable metrics export/push to an external InfluxDB database
          启用指标导出/推送到外部 InfluxDB 数据库
          
  --metrics.influxdb.endpoint value
    InfluxDB API endpoint to report metrics to (default: "http://localhost:8086")
    用于报告指标的InfluxDB API(默认:"http://localhost:8086")
    
  --metrics.influxdb.database value
          InfluxDB database name to push reported metrics to (default: "geth")
          将报告的指标推送到InfluxDB数据库的库名(默认:"geth")
          
  --metrics.influxdb.username value
          Username to authorize access to the database (default: "test")
          用于授权访问数据库的用户名(默认:"test")
          
  --metrics.influxdb.password value
          Password to authorize access to the database (default: "test")
          用于授权访问数据库的密码(默认:"test")
          
  --metrics.influxdb.host.tag host
          InfluxDB host tag attached to all measurements (default: "localhost")
          附加到所有测量值的InfluxDB主机标签(默认:"localhost")
  
WHISPER (EXPERIMENTAL) OPTIONS:
  --shh
          Enable Whisper
          启动Whisper
          
  --shh.maxmessagesize value
          Max message size accepted (default: 1048576)
          可接受的最大的消息大小(默认:1048576)
          
  --shh.pow value
          Minimum POW accepted (default: 0.2)
          可接受的最小的POW(默认:0.2)
  
  
DEPRECATED OPTIONS:  启用的选项
  --fast
          Enable fast syncing through state downloads (replaced by --syncmode)
          启用快速同步,是通过状态下载(现在替换为  --syncmode)
  --light
          Enable light client mode (replaced by --syncmode)
          启用轻客户端模式(现在替换为  --syncmode)
  
MISC OPTIONS:
  --help, -h  show help
  

COPYRIGHT:
   Copyright 2013-2018 The go-ethereum Authors




点赞
说说你的看法

所有评论: (0)