目前不清退的交易所推荐:
1、全球第二大交易所OKX欧意
国区邀请链接: https://www.mnftinqq.com/zh-hans/join/1837888 币种多,交易量大!
国际邀请链接:https://www.okx.com/join/1837888 注册简单,交易不需要实名,新用户能开合约,币种多,交易量大!
2、老牌交易所比特儿现改名叫芝麻开门 :https://www.gate.win/signup/649183 注册成功之后务必在网页端完成 手机号码绑定,大陆号码输入+086即可 ,实名认证。推荐在APP端实名认证初级+高级更方便上传。网页端也可以实名认证。
全球最大交易所币安,国区邀请链接:https://accounts.binance.com/zh-CN/register?ref=16003031币安注册不了IP地址用香港,居住地选香港,认证照旧,邮箱推荐如gmail、outlook。支持币种多,交易安全!
买好币上KuCoin:https://www.kucoin.com/r/af/1f7w3CoinMarketCap前五的交易所,注册友好操简单快捷!
TraderWagon币安带单:https://www.traderwagon.com/zh-CN/register?ref=zoh4gfu
Bybit最高 $1,020 等您领取 $20 体验金和价值最高 $1,000 的福利卡:https://www.bybit.com/zh-CN/invite?ref=K7WX7V
使用比特币无限挖矿
Bitcoin Unlimited 基于 Satoshi 代码库,因此可以替代您的矿池软件。只需将您的池配置为指向 Bitcoin Unlimited 守护程序,其方式与比特币核心守护程序完全相同。
但是 Bitcoin Unlimited 具有促进挖矿的特定功能。
getminingcandidate并提交miningsolution
访问区块候选和提交区块解决方案的有效协议
Bitcoin Unlimited 提供了 2 个额外的挖矿 RPC 函数,可以用来代替“getblocktemplate”和“submitblock”。这些 RPC 不会将整个区块传递给矿池。相反,候选区块头、提议的 coinbase 交易和 coinbase merkle 证明被通过。这与通过 Stratum 协议传递给散列硬件的数据大致相同,因此,如果您熟悉 Stratum,您就会熟悉这是如何实现的。
矿池使用getminingcandidate来接收前面描述的区块信息和跟踪标识符。然后它可能会修改或完全替换 coinbase 交易和许多区块头字段,以创建不同的哈希硬件候选者。然后它通过 Stratum 将这些候选者转发到散列硬件。找到解决方案后,矿池可以通过 submitminingsolution 将解决方案提交回bitcoind。
使用 RPC getminingcandidate 和 RPC submitminingsolution 的一些好处是:
- 大大减少了带宽和延迟,尤其是对于大块。此 RPC 需要 log2(blocksize) 数据。
- 更快的 JSON 解析和创建
- 简洁的 JSON
比特币矿工
提供了一个示例 CPU-miner 程序,展示了这些功能的概念验证使用。源代码位于 bitcoin-miner.cpp。要尝试一下,请运行
bitcoin-miner
当然,鉴于当前和可预见的挖矿困难,该程序不会在主网上找到任何区块。但是,它会在 testnet 或 regtest 上找到块。
挖矿测试.py
这些接口的基于 python 的测试位于 qa/rpc-tests/miningtest.py。此示例可能对使用高级语言访问这些 RPC 的人更有用。
函数文档:
RPC getminingcandidate
参数:-无
回报:
{
# candidate identifier for submitminingsolution (integer):
"id": 14,
# Hash of the previous block (hex string):
"prevhash": "0000316517e048ab283a41df3c0ba125345a5c56ef3f76db901b0ede65e2f0e5",
# Coinbase transaction (hex string encoded binary transaction)
"coinbase": "...00ffffffff10028122000b2f454233322f414431322ffff..."
# Block version (integer):
"version": 536870912,
# Difficulty (hex string):
"nBits": "207fffff",
# Block time (integer):
"time": 1528925409,
# Merkle branch for the block, proving that this coinbase is part of the block (list of hex strings):
"merkleProof": [
"ff12771afd8b7c5f11b499897c27454a869a01c2863567e0fc92308f01fd2552",
"d7fa501d5bc94d9ae9fdab9984fd955c08fedbfe02637ac2384844eb52688f45"
]
}
RPC 提交解决方案
论据:
{
# ID from getminingcandidate RPC (integer):
"id": 14,
# Miner generated nonce (integer):
"nonce": 1804358173,
# Modified Coinbase transaction (hex string encoded binary transaction, optional):
"coinbase": "...00ffffffff10028122000b2fc7237b322f414431322ffff...",
# Block time (integer, optional):
"time": 1528925410,
# Block version (integer, optional):
"version": 536870912
}
回报:
与submitblock 完全相同。None 表示成功,错误字符串或 JSONRPCException 如果有问题。
基于 BIP135 的特征投票
BIP135 是 BIP9 的增强版,允许矿工通过在已解决区块的版本字段中设置某些位来投票选择功能。版本字段中位含义的定义发生变化,可在 config/forks.csv 中找到。您可以定义自己的比特,但是除非绝大多数矿工同意遵守这些比特定义,否则这样的定义没有价值。详细信息可在 doc/bip135-genvoting.md 中找到。
矿工可以通过“mining.vote”配置参数启用对某些功能的投票。提供以逗号分隔的功能名称列表。例如,如果 forks.csv 定义了三个特征“f0”、“f1”和“f2”,您可以通过以下配置设置为“f1”和“f2”投票:
mining.vote=f0,f1
可以通过“get”和“set”RPC 调用随时访问或更改此参数。
设置过大的块大小并接受深度
大于过大块大小的块将被忽略,直到在其上构建“接受深度”(参见下一节)块。这允许矿工阻止他们认为过大的块,但如果看起来大多数网络都接受这个大小,则最终接受它们。您可以在此处了解有关这些参数的更多信息,以及矿工对如何设置它们的意见。
要更改 Bitcoin Unlimited 将生成的最大块,请运行:
bitcoin-cli setexcessiveblock blockSize acceptDepth
例如,要设置接受深度为 10 个块的 1MB 块,请使用:
bitcoin-cli setexcessiveblock 1000000 10
要更改 bitcoin.conf 或命令行中的超大块大小字段,请将超大块大小配置变量设置为以字节为单位的值:
excessiveblocksize=<NNN>
例如,要设置 3MB 块,请使用:
过多块大小=3000000
要更改 bitcoin.conf 或命令行中的接受深度字段,请将exterioracceptdepth 配置变量设置为一个值(以块为单位):
excessiveacceptdepth=<NNN>
例如,要在接受过多的块之前等待 10 个块,请使用:
过度接受深度=10
要在运行的 bitcoind 中发现这些设置,请使用“getexcessiveblock”。例如:
$ bitcoin-cli getexcessiveblock
{
"excessiveBlockSize": 16000000,
"excessiveAcceptDepth": 4
}
设置你的颠覆字符串(欺骗用户代理)
要隐藏这是一个 Bitcoin Unlimited 节点,请在 bitcoin.conf 文件中或使用 ./bitcoin-cli 将“net.subversionOverride”设置为您选择的字符串:
bitcoin-cli set net.subversionOverride="Your Choice Here"
显示当前字符串:
bitcoin-cli get net.subversionOverride
要在 bitcoin.conf 或命令行中更改此字段,请使用:
net.subversionOverride=
设置你的最大开采块
默认情况下,Bitcoin Unlimited 将开采的最大区块为 1MB(与 Bitcoin Core 兼容)。如果整个比特币网络愿意挖掘更大的块,你可能想要增加这个块大小,或者如果你觉得对网络的需求超过了容量,你可能想要减小这个大小。
要更改 Bitcoin Unlimited 将生成的最大块,请运行:
bitcoin-cli setminingmaxblock blocksize
例如,要设置 2MB 块,请使用:
bitcoin-cli setminingmaxblock 2000000
要在 bitcoin.conf 或命令行中更改此字段,请使用:
blockmaxsize=<NNN>
例如,要设置 3MB 块,请使用:
块最大大小=3000000
您可以通过运行来发现最大块大小:
bitcoin-cli getminingmaxblock
- 警告:设置此最大块大小参数意味着比特币可能会在下一个块上挖掘该大小的块。预计任何投票或“宽限期”(如指定的 BIP109)已经发生。
设置你的块版本
矿工可以通过 CLI/RPC 或配置文件设置区块版本标志:
从 CLI/RPC,
bitcoin-cli setblockversion (version number or string)
例如:
以下都选择投票给 2MB 块:
bitcoin-cli setblockversion 0x30000000
bitcoin-cli setblockversion 805306368
bitcoin-cli setblockversion BIP109
以下不投票支持 2MB 块:
bitcoin-cli setblockversion 0x20000000
bitcoin-cli setblockversion 536870912
bitcoin-cli setblockversion BASE
您可以使用以下命令发现当前块版本:
bitcoin-cli getblockversion
来自bitcoin.conf:
块版本=805306368
请注意,您必须在 bitcoin.conf 文件中以十进制格式指定版本。这是 Linux 中的一个简单转换: python -c “print ‘%d’ % 0x30000000”
- 警告:如果您在调用 setblockversion 时使用无意义的数字,您最终会生成带有无意义版本的块!
设置块重试间隔
Bitcoin Unlimited 跟踪多个数据源,如果一个源未提供请求的数据,则可以快速从其他源请求块或交易。要更改重试率,请在您的 bitcoin.conf 中以微秒为单位进行设置:
事务重试间隔:
txretryinterval=2000000
块重试间隔:
blkretryinterval=2000000
设置内存池大小
更大的交易内存池允许您的节点成功接收加速块(它增加了您在加速块中引用交易的机会)并从更大的可用交易集中进行选择。要更改内存池大小,请在 bitcoin.conf 中进行配置:
maxmempool=<megabytes>
因此 4GB 内存池的配置如下:
最大内存池=4096
设置你的 Coinbase 字符串
要更改出现在已挖掘区块的 coinbase 消息中的字符串,请运行:
bitcoin-cli setminercomment "your mining comment"
显示当前字符串:
bitcoin-cli getminercomment
- 警告:一些挖矿软件和矿池也会添加到 coinbase 字符串中,并且不会验证总字符串长度(它必须小于 100 字节)。这可能会导致矿池生成无效块。请确保您的矿池软件验证总字符串长度,或保持您添加到 Bitcoin Unlimited 的字符串较短。
填充新节点的事务内存池
当您重新启动 bitcoind 时,内存池开始为空。如果快速找到一个块,这可能会导致一个交易很少的块。可以使用不同的 Bitcoin Unlimited 节点的内存池“启动”一个新的 bitcoind 实例。为此,请转到具有完整内存池的节点上的 CLI,连接到您的新节点,然后将事务推送到该节点。
bitcoin-cli addnode <new node's IP:port> onetry
bitcoin-cli pushtx <new node's IP:port>
验证未解决的块
Bitcoin Unlimited 可用于验证从其他 Bitcoin Unlimited 版本或其他比特币客户端收到的块模板。这确保了 Bitcoin Unlimited 将在开采区块后接受该区块,从而允许矿工在其采矿网络中部署多个客户端。请注意,如果该块不是基于此客户端看到的链提示构建的,则此 API 将返回错误。因此,客户端与创建块模板的客户端完全同步非常重要。您可以通过“addnode”显式连接它们来做到这一点。
块验证 RPC 使用与“submitblock” RPC 相同的调用语法,如果块验证失败,则返回 JSONRPCException。有关详细的 Python 示例,请参阅“qa/rpc-tests/validateblocktemplate.py”。
bitcoin-cli validateblocktemplate <hex encoded block>