比特币 bitcoin-cli 操作示例

 btc  比特币 bitcoin-cli 操作示例已关闭评论
11月 142018
 

很好的入门文章,转自:https://www.jianshu.com/p/1891a083e4fe

查看链信息

bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=btcrpcusr -rpcpassword=btcrpcpasswd -rpcport=18332 getinfo

-rpcconnect=127.0.0.1 -rpcuser=btcrpcusr -rpcpassword=btcrpcpasswd -rpcport=18332” 为连接信息,之后都省略掉。

根据块儿数查看其hash值

bitcoin-cli getblockhash 1410503

根据hash值查看区块儿详细信息

bitcoin-cli getblock 0000000000000086b55198d8775c6363d275ad8f5eee615e4a2507bbb439b63e

账户列表

bitcoin-cli listaccounts

查看某个账户下的地址

bitcoin-cli getaddressesbyaccount "recive" 

在某个账户下新建地址

bitcoin-cli getnewaddress "recive" 

查看某个地址所属的账户

bitcoin-cli getaccount myCDZbtxJwtY2YKPc5E3tVqfMU8yWMwWRF

查看账户余额

bitcoin-cli getbalance "account_name" 

如果不指定账户名称,则返回总余额。

查看地址收到币的数量

bitcoin-cli getreceivedbyaddress "n3BMgZMA26TcHnVa5iNJeB3PMqkF3cEWBE" 0.02000000 # 指定最小确认数量(默认为1) bitcoin-cli getreceivedbyaddress "address" 6

查看本地address的接收记录

bitcoin-cli listreceivedbyaddress 6
[
  {
    "address": "mgQwXkzXz75zorb4F8L9Bw9PKim6TrbjPY",
    "account": "recive",
    "amount": 1.10000000,
    "confirmations": 153368,
    "label": "recive",
    "txids": [
      "deca83ef57c4a2648f59784756e693bf8db760a86d13101c105d53160079a900"
    ]
  },
  {
    "address": "mhgvU3hh8RNy4Y319w8EehnszSr4XEsLec",
    "account": "recive",
    "amount": 2.00000000,
    "confirmations": 153343,
    "label": "recive",
    "txids": [
      "8691f1fa76cd69dc494de16046f92d15bb25b94e580f228d13784691901c914b",
      "5450567faf25bb43647f4fb70b0d1972c6553482fcfef43254b38f280851c77b"
    ]
  },
  ......
]

转账

# 从默认账户给目标地址转账 bitcoin-cli sendtoaddress "myCDZbtxJwtY2YKPc5E3tVqfMU8yWMwWRF" 0.01 # 从指定账户转账 bitcoin-cli sendfrom "recive" "n3BMgZMA26TcHnVa5iNJeB3PMqkF3cEWBE" 0.01

查看交易详情

bitcoin-cli gettransaction "a3a8382e3f0bbf2d2334bfa9f25558860311640c9a6c2122ea77e9c8cfb34179" 

查看raw交易

bitcoin-cli getrawtransaction "7499046133f298e09decd5775e42d23e0eacdee96425efa8090b706429209468" 

得到hash字符串,解码:

bitcoin-cli decoderawtransaction "0100000001baf023ab403e7a4ec4982d695f9a98d2a88babb8cd7c9c2c27c72425735fa917000000006b483045022100c9f23820000b1d9dcae313907e483138a977a4b6e21a3464c1d09cc4ada203770220194aa9eaf0b4be843f0afdbdf62657cbfdc1278f176817447941c6c559f8f0d9012103863830b0464e964c04bce8fe1385f55a48e478617ecd91a6e7c5266d83f834effdffffff02a086010000000000016ab7938700000000001976a9149e6b3422474214b0fa9461eef68a10f22ce1aa9288acc6851500" 

也可以直接通过 transaction id 查看交易的 JSON 对象:

bitcoin-cli getrawtransaction d63b10919f548ccd6e8a48954826aacde0e9f4aac250d965a1c3eee5f044f454 true

查看帮助

  • 命令列表
bitcoin-cli help 
  • 某个命令的详细帮助信息
bitcoin-cli help sendtoaddress

API 文档:

http://chainquery.com/bitcoin-api
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

测试币水龙头:

https://testnet.manu.backend.hamburg/faucet
https://testnet.coinfaucet.eu/en/

测试网络工具网站:

https://testnet.blockchain.info
https://live.blockcypher.com/btc-testnet/
https://test-insight.bitpay.com




转自:https://www.jianshu.com/p/1891a083e4fe

比特币官方钱包: bitcoin钱包(bitcoin-qt),在测试网testnet下运行解决方法

 btc, 区块链  比特币官方钱包: bitcoin钱包(bitcoin-qt),在测试网testnet下运行解决方法已关闭评论
11月 122018
 

目前官网bitcoin.org的钱包客户端已经不再分别提供主网和测试网的app, 而是提供了一个整合的版本,默认启动的是主网,鉴于目前主网同步一次数据需要200多G的数据,空间和时间上都耗不起,那么是否可以使这个app启动在测试网下,甚至是regnet下呢?非常简单:

启动的时候添加参数

window下方式:

  1. 第一步:右键单击 bitcion-qt.exe 创建一个快捷方式

  2. 第二步:右击这个快捷方式并编辑

  3. 第三步 :增加 -testnet  参数并修改图标(以便于区别)

    请注意,参数-testnet前面 要有空格,

    如果bitcoin-qt.exe所在路径包含空格,还要注意参数是加在引号外面(xp)

    还是引号里面(win7)

    建议选择绿色的图标

  4. 第四步:保存,并运行快捷方式

  5. 如果要挖矿 , 只需要在第三步添加 -gen参数 

mac下方式:

Mac上可以使用 Automater 这个软件制作带参数的快捷方式

首选新建一个 Automater 应用, 然后选择 Run Shell Script

使用open命令并编辑所需要的参数

open /Applications/Bitcoin-Qt.app –args -testnet

最后保存该脚本至桌面,下次可以通过桌面快捷方式启动了

regnet等参数都可以通过上面的方式添加。

USDT背后的技术原理

 区块链  USDT背后的技术原理已关闭评论
11月 012018
 

非常好的文章,写的很清楚,推荐,转自:https://kuaibao.qq.com/s/20180610G1GHBJ00

OP_RETURN

在进入正题前,我们需要了解比特币脚本OP_RETURN。

OP_RETURN是比特币0.9版本引入支持一种新的操作符,目的是允许开发者在交易上输出增加40个字节自定义的非交易数据。更多详细信息参考OP_RETURN wiki

USDT

USDT又名Tether,通过Tether提供1:1美元兑换服务,为法币与数字货币提供兑换服务。 国内交易所关闭后,国内玩币的人都知道,这里不过多介绍。

架构

架构图

各层介绍如下:

比特币区块链层,主要实现Tether分布式帐本功能。Tether交易信息通过OP_RETURN保存在比特币的分布式帐本中。

Omni协议层,Omni协议层主要功能如下:

创建与销毁USDT

提供OmniApi

跟踪Tether流通,通过Omnichest.info提供区块链浏览器功能

支持用户交易与保存Tether(USDT)

Tether业务层,Tether业务层主要功能如下:

1. 法币兑换Tether(USDT)

2. Tether(USDT)兑换法币

3. 监管流通中Tether(USDT)

流程

流程图

这里与普通交易所的流程类似。法币兑换USDT,发放相应USDT,USDT兑换法币,回收USDT。

交易

具体看一个交易吧:   8d1447abe44d0dd7e0fdeb1cb130d4f15f2a50dde93068dfe07ed7a7331ca530

先上图:

交易信息-1

主要看交易的输入与输出,这里关注点主要在输出,为什么输出有三个呢? 第一个很容易理解,表示找零 第二个表示什么呢?表示转帐对方的地址,具体参考wiki 第三个OP_RETURN用于存储Tether部分转帐信息

交易信息-2

OP_RETURN 6f6d6e690000000000000155000002ba7def3000

图中的0x155十六进对应十进制341,在染色币的体系中对应类型表示Tether,具体参考染色币列表。 转帐的数量在哪里体现呢?转帐数字为000002ba7def3000,占用8个字节。对应十进制数字结果为:

>>> int('0x000002ba7def3000',16)
3000000000000L

交易信息-3

图中显示的Tether的交易的信息,这些交易信息来自比特币交易信息。

omni封装OP_RETURN信息代码如下:

UniValue omni_createpayload_simplesend(const UniValue& params, bool fHelp)

{

if (fHelp || params.size() != 2)

throw runtime_error(

“omni_createpayload_simplesend propertyid \”amount\”\n”

“\nCreate the payload for a simple send transaction.\n”

“\nArguments:\n”

“1. propertyid (number, required) the identifier of the tokens to send\n”

“2. amount (string, required) the amount to send\n”

“\nResult:\n”

“\”payload\” (string) the hex-encoded payload\n”

“\nExamples:\n”

+ HelpExampleCli(“omni_createpayload_simplesend”, “1 \”100.0\””)

+ HelpExampleRpc(“omni_createpayload_simplesend”, “1, \”100.0\””)

);

uint32_t propertyId = ParsePropertyId(params[0]);

RequireExistingProperty(propertyId);

int64_t amount = ParseAmount(params[1], isPropertyDivisible(propertyId));

std::vector payload = CreatePayload_SimpleSend(propertyId, amount);

return HexStr(payload.begin(), payload.end());

}

小结

USDT并没有自己的公有链,而是在比特币交易交易中利用比特币OP_RETURN来保存USDT交易信息。

逻辑上两条链,数据上一条链

USDT钱包地址与比特币地址等同

非交易所内的USDT转帐实际上bitcoin转帐

相关参考网站:

参考

  1. tether
  2. Api
  3. TetherWhitePaper
  4. omnicore
  5. OP_RETURN
  6. 比特币浏览器
  7. Tether浏览器
  8. OP_RETURN是区块链可扩展性的克星
  9. omnilayer
  10. omni_gettransaction
  11. 比特币浏览器
  12. populateRPCTransactionObject
  13. Proposed Standard for Bitcoin Assets

产生Ethereum HD wallet代码,BIP32、BIP39、BIP44, 使用javascript套件产生Ethereum HD Wallet

 区块链  产生Ethereum HD wallet代码,BIP32、BIP39、BIP44, 使用javascript套件产生Ethereum HD Wallet已关闭评论
11月 012018
 

非常好的文章,来自: https://www.jianshu.com/p/30af695404b0

钱包是很多人第一次接触 Ethereum 或其他虚拟货币的地方。不管是用手机或浏览器的钱包,相信很多人都对一串陌生的单字感到好奇(而且很重要还要备份)。这是源自于 Bitcoin 中钱包的设计,采用这套机制的钱包通常称为 HD Wallet本篇希望简述 HD Wallet 的架构,再使用 JavaScript 套件从头创建一个 Ethereum HD Wallet

虚拟货币钱包

钱包顾名思义是存放$$$。但在虚拟货币世界有点不一样,我的帐户资讯(像是我有多少钱)是储存在区块链上,实际存在钱包中的是我的帐户对应的 key。有了这把 key 我就可以在虚拟货币世界证明我的身份、就可以更改我帐户的状态(像是送钱给别人)。这样来说,虚拟货币钱包实际上是管理和储存 key 的工具。这把 key 就是我的私钥,而帐户是从我的公钥衍伸出来。

Ledger 虚拟货币钱包

BIP32, BIP39, BIP44

BIP 全名是 Bitcoin Improvement Proposals,是提出 Bitcoin 的新功能或改进措施的文件。可由任何人提出,经过审核后公布在 bitcoin/bips 上。BIP 和 Bitcoin 的关系,就像是 RFC 之于 Internet。

而其中的 BIP32, BIP39, BIP44 共同定义了目前被广泛使用的 HD Wallet,包含其设计动机和理念、实作方式、实例等。

  • BIP32:定义 Hierarchical Deterministic wallet (简称 “HD Wallet”),是一个系统可以从单一个 seed 产生一树状结构储存多组 keypairs(私钥和公钥)。好处是可以方便的备份、转移到其他相容装置(因为都只需要 seed),以及分层的权限控制等。

BIP32 定义的 HD Wallet

  • BIP39:将 seed 用方便记忆和书写的单字表示。一般由 12 个单字组成,称为 mnemonic code(phrase),中文称为助记词或助记码。例如:

    rose rocket invest real refuse margin festival danger anger border idle brown

  • BIP44:基于 BIP32 的系统,赋予树状结构中的各层特殊的意义。让同一个 seed 可以支援多币种、多帐户等。各层定义如下:

    m / purpose’ / coin_type’ / account’ / change / address_index

    其中的purporse’固定是44’,代表使用 BIP44。而coin_type’用来表示不同币种,例如 Bitcoin 就是0’,Ethereum 是60’。

Ethereum HD Wallet

Ethereum 的钱包目前均采用以上 Bitcoin HD Wallet 的架构,并订coin_type’为60’,可以在 ethereum/EIPs/issues 中看到相关的讨论。举例来说,在一个 Ethereum HD Wallet 中,第一个帐户(这里的帐户指 BIP44 中定义的account’)的第一组 keypair,其路径会是m/44’/60’/0’/0/0。


创建 Ethereum HD wallet

使用的 JavaScript 套件包含:

  • bip39:实作 BIP39,随机产生新的 mnemonic code,并可以将其转成 binary 的 seed。
  • ethereumjs-wallet:产生和管理公私钥,我使用其中的 hdkey 子套件来创建 HD Wallet。
  • ethereumjs-util:集合许多 Ethereum 需要的运算功能。

安装套件

npm install bip39 ethereumjs-wallet ethereumjs-util --save

汇入套件

var bip39 = require('bip39') var hdkey = require('ethereumjs-wallet/hdkey') var util = require('ethereumjs-util')

产生 mnemonic code

var mnemonic = bip39.generateMnemonic()

取得的 mnemonic code 会像:

rose rocket invest real refuse margin festival danger anger border idle brown

产生 HD wallet

先将 mnemonic code 转成 binary 的 seed。

var seed = bip39.mnemonicToSeed(mnemonic)

使用 seed 产生 HD Wallet。如果要说更明确,就是产生 Master Key 并记录起来。

var hdWallet = hdkey.fromMasterSeed(seed)

产生第一个 Ethereum Address

产生 Wallet 中第一个帐户的第一组 keypair。可以从 Master Key,根据其路径m/44’/60’/0’/0/0推导出来。

var key1 = hdWallet.derivePath("m/44'/60'/0'/0/0")

使用 keypair 中的公钥产生 address。

var address1 = util.pubToAddress(key1._hdkey._publicKey, true)

取得的 Address:

685ce4cbdd5c19b64ca008cb85b83947e5318efa

Encoding Address

Ethereum 很贴心,为了避免大家打错 address(导致把钱送错人),Ethereum 让 Address 变得比较难打?!总之一般会用 EIP55: Mixed-case checksum address encoding 再进行编码。许多钱包也支援用户输入没经过编码的 Address,那就会跳过 checksum 机制,建议还是使用编码过的 Address。

address1 = util.toChecksumAddress(address1.toString('hex'))

最后取得的 Address 会像:

0x685ce4CbDd5c19b64CA008cB85b83947e5318EFA

可以用 Mnemonic Code Converter 验证结果

输入 mnemonic code

产生 Address、公钥、私钥,结果和我取得的 Address 一致


使用 Ethereum HD wallet

把 mnemonic code 记录下来好好保存,就会是一个冷钱包(指不连网路的钱包,所以安全很多)。可以使用产生出来的 address 收 Ether 或任何 REC20 Token。要送钱的话,可以汇入到任一个支援 Ethereum HD Wallet 的钱包。常用的 Ethereum HD wallet 像,在浏览器使用的 MyEtherWallet、MetaMask 和在手机使用的 imToken 等。

MetaMask

题外话,MetaMask 如何在浏览器储存我们的 mnemonic code?

相信大家都了解了,有 mnemonic code 就可以产生 HD Wallet 中所有的 keys。有了 keys 就可以任意送钱包中的 Ether 或 Token 给别人。所以 mnemonic code 很重要!!!那这么重要的东西保存在浏览器不会很危险吗?我便研究下我常用的 MetaMask 浏览器钱包。MetaMask 将加密后的 mnemonic code 存在浏览器的 Local Storage(一块只存在 Local 且不会过期的资料区块)。加密使用用户另外输入的密码,再汇入时会要求用户设定密码(如上图),而每一次重新开启钱包都会要求输入密码。解密算法有 Open Source,也有线上 Live Demo

MetaMask Local Storage


References

其他相关 Ethereum JavaScript 套件

作者:安德森_Anderson
链接:https://www.jianshu.com/p/54a2b14dfdf2
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

以太坊客户端Geth命令用法-参数详解

 eth, 区块链  以太坊客户端Geth命令用法-参数详解已关闭评论
10月 162018
 

geth的命令行详解,备用。

geth在以太坊智能合约开发中最常用的工具(必备开发工具),一个多用途的命令行工具。
熟悉Geth可以让我们有更好的效率,大家可收藏起来作为Geth命令用法手册。 本文主要是对geth help的翻译,基于最新的geth 1.7.3-stable版本。

命令用法

geth [选项] 命令 [命令选项] [参数…]

版本:

1.7.3-stable

命令:

account    管理账户
attach     启动交互式JavaScript环境(连接到节点)
bug        上报bug Issues
console    启动交互式JavaScript环境
copydb     从文件夹创建本地链
dump       Dump(分析)一个特定的块存储
dumpconfig 显示配置值
export     导出区块链到文件
import     导入一个区块链文件
init       启动并初始化一个新的创世纪块
js         执行指定的JavaScript文件(多个)
license    显示许可信息
makecache  生成ethash验证缓存(用于测试)
makedag    生成ethash 挖矿DAG(用于测试)
monitor    监控和可视化节点指标
removedb   删除区块链和状态数据库
version    打印版本号
wallet     管理Ethereum预售钱包
help,h     显示一个命令或帮助一个命令列表

ETHEREUM选项:

--config value          TOML 配置文件
--datadir “xxx”         数据库和keystore密钥的数据目录
--keystore              keystore存放目录(默认在datadir内)
--nousb                 禁用监控和管理USB硬件钱包
--networkid value       网络标识符(整型, 1=Frontier, 2=Morden (弃用), 3=Ropsten, 4=Rinkeby) (默认: 1)
--testnet               Ropsten网络:预先配置的POW(proof-of-work)测试网络
--rinkeby               Rinkeby网络: 预先配置的POA(proof-of-authority)测试网络
--syncmode "fast"       同步模式 ("fast", "full", or "light")
--ethstats value        上报ethstats service  URL (nodename:[email protected]:port)
--identity value        自定义节点名
--lightserv value       允许LES请求时间最大百分比(0 – 90)(默认值:0) 
--lightpeers value      最大LES client peers数量(默认值:20)
--lightkdf              在KDF强度消费时降低key-derivation RAM&CPU使用

开发者(模式)选项:

--dev               使用POA共识网络,默认预分配一个开发者账户并且会自动开启挖矿。
--dev.period value  开发者模式下挖矿周期 (0 = 仅在交易时) (默认: 0)

ETHASH 选项:

--ethash.cachedir                        ethash验证缓存目录(默认 = datadir目录内)
--ethash.cachesinmem value               在内存保存的最近的ethash缓存个数  (每个缓存16MB ) (默认: 2)
--ethash.cachesondisk value              在磁盘保存的最近的ethash缓存个数 (每个缓存16MB) (默认: 3)
--ethash.dagdir ""                       存ethash DAGs目录 (默认 = 用户hom目录)
--ethash.dagsinmem value                 在内存保存的最近的ethash DAGs 个数 (每个1GB以上) (默认: 1)
--ethash.dagsondisk value                在磁盘保存的最近的ethash DAGs 个数 (每个1GB以上) (默认: 2)

交易池选项:

--txpool.nolocals            为本地提交交易禁用价格豁免
--txpool.journal value       本地交易的磁盘日志:用于节点重启 (默认: "transactions.rlp")
--txpool.rejournal value     重新生成本地交易日志的时间间隔 (默认: 1小时)
--txpool.pricelimit value    加入交易池的最小的gas价格限制(默认: 1)
--txpool.pricebump value     价格波动百分比(相对之前已有交易) (默认: 10)
--txpool.accountslots value  每个帐户保证可执行的最少交易槽数量  (默认: 16)
--txpool.globalslots value   所有帐户可执行的最大交易槽数量 (默认: 4096)
--txpool.accountqueue value  每个帐户允许的最多非可执行交易槽数量 (默认: 64)
--txpool.globalqueue value   所有帐户非可执行交易最大槽数量  (默认: 1024)
--txpool.lifetime value      非可执行交易最大入队时间(默认: 3小时)

性能调优的选项:

--cache value                分配给内部缓存的内存MB数量,缓存值(最低16 mb /数据库强制要求)(默认:128)
--trie-cache-gens value      保持在内存中产生的trie node数量(默认:120)

帐户选项:

--unlock value              需解锁账户用逗号分隔
--password value            用于非交互式密码输入的密码文件

API和控制台选项:

--rpc                       启用HTTP-RPC服务器
--rpcaddr value             HTTP-RPC服务器接口地址(默认值:“localhost”)
--rpcport value             HTTP-RPC服务器监听端口(默认值:8545)
--rpcapi value              基于HTTP-RPC接口提供的API
--ws                        启用WS-RPC服务器
--wsaddr value              WS-RPC服务器监听接口地址(默认值:“localhost”)
--wsport value              WS-RPC服务器监听端口(默认值:8546)
--wsapi  value              基于WS-RPC的接口提供的API
--wsorigins value           websockets请求允许的源
--ipcdisable                禁用IPC-RPC服务器
--ipcpath                   包含在datadir里的IPC socket/pipe文件名(转义过的显式路径)
--rpccorsdomain value       允许跨域请求的域名列表(逗号分隔)(浏览器强制)
--jspath loadScript         JavaScript加载脚本的根路径(默认值:“.”)
--exec value                执行JavaScript语句(只能结合console/attach使用)
--preload value             预加载到控制台的JavaScript文件列表(逗号分隔)

网络选项:

--bootnodes value    用于P2P发现引导的enode urls(逗号分隔)(对于light servers用v4+v5代替)
--bootnodesv4 value  用于P2P v4发现引导的enode urls(逗号分隔) (light server, 全节点)
--bootnodesv5 value  用于P2P v5发现引导的enode urls(逗号分隔) (light server, 轻节点)
--port value         网卡监听端口(默认值:30303)
--maxpeers value     最大的网络节点数量(如果设置为0,网络将被禁用)(默认值:25)
--maxpendpeers value    最大尝试连接的数量(如果设置为0,则将使用默认值)(默认值:0)
--nat value             NAT端口映射机制 (any|none|upnp|pmp|extip:<IP>) (默认: “any”)
--nodiscover            禁用节点发现机制(手动添加节点)
--v5disc                启用实验性的RLPx V5(Topic发现)机制
--nodekey value         P2P节点密钥文件
--nodekeyhex value      十六进制的P2P节点密钥(用于测试)

矿工选项:

--mine                  打开挖矿
--minerthreads value    挖矿使用的CPU线程数量(默认值:8)
--etherbase value       挖矿奖励地址(默认=第一个创建的帐户)(默认值:“0”)
--targetgaslimit value  目标gas限制:设置最低gas限制(低于这个不会被挖?) (默认值:“4712388”)
--gasprice value        挖矿接受交易的最低gas价格
--extradata value       矿工设置的额外块数据(默认=client version)

GAS价格选项:

--gpoblocks value      用于检查gas价格的最近块的个数  (默认: 10)
--gpopercentile value  建议gas价参考最近交易的gas价的百分位数,(默认: 50)

虚拟机的选项:

--vmdebug        记录VM及合约调试信息

日志和调试选项:

--metrics            启用metrics收集和报告
--fakepow            禁用proof-of-work验证
--verbosity value    日志详细度:0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (default: 3)
--vmodule value      每个模块详细度:以 <pattern>=<level>的逗号分隔列表 (比如 eth/*=6,p2p=5)
--backtrace value    请求特定日志记录堆栈跟踪 (比如 “block.go:271”)
--debug                     突出显示调用位置日志(文件名及行号)
--pprof                     启用pprof HTTP服务器
--pprofaddr value           pprof HTTP服务器监听接口(默认值:127.0.0.1)
--pprofport value           pprof HTTP服务器监听端口(默认值:6060)
--memprofilerate value      按指定频率打开memory profiling    (默认:524288)
--blockprofilerate value    按指定频率打开block profiling    (默认值:0)
--cpuprofile value          将CPU profile写入指定文件
--trace value               将execution trace写入指定文件

WHISPER实验选项:

--shh                        启用Whisper
--shh.maxmessagesize value   可接受的最大的消息大小 (默认值: 1048576)
--shh.pow value              可接受的最小的POW (默认值: 0.2)

弃用选项:

--fast     开启快速同步
--light    启用轻客户端模式

其他选项:

–help, -h    显示帮助
转自:https://learnblockchain.cn/2017/11/29/geth_cmd_options/