首页 > 世链号 > 比特币客户端中文版|新版本客户端发布在即隐私功能成为亮点
区块筱筱  

比特币客户端中文版|新版本客户端发布在即隐私功能成为亮点

摘要:据BitcoinCore管理者WladimirvanderLaan预估,这一版本号的手机客户端最开始将于9月8日公布。0版本号手机客户端在github上的完成率早已做到了95%。
比特币客户端中文版BitcoinCore0.17.0距宣布公布已愈来愈近,这也是十年来BTC的第17代手机客户端版本号。
据BitcoinCore管理者WladimirvanderLaan预估,这一版本号的手机客户端最开始将于9月8日公布。现阶段0.17.0版本号手机客户端在github上的完成率早已做到了95%。
下列为0.17.0版本升级表明:
(留意,这仅仅一个临时性版的表明,宣布公布时很有可能会稍加改动)
BitcoinCore0.17.0版本号能够 在这儿浏览了:
https://bitcoincore.org/bin/bitcoin-core-0.17.0/
它是BTC的重特大更新版本,升级內容包含新作用、各种各样bug修补,及其特性提高。
开发人员能够 应用GitHub的难题定位追踪器汇报不正确:
https://github.com/bitcoin/bitcoin/issues
若要接纳安全性及升级通告,请定阅:
https://bitcoincore.org/en/list/announcements/join/
如何更新
假如你运作的是旧版手机客户端,请关掉它,直到其彻底关掉(旧版很有可能必须数分钟的時间),随后再运行程序安装(在Windows上)或复制遮盖至/Applications/Bitcoin-Qt(Mac系统软件)或bitcoind/bitcoin-qt(Linux系统软件)。
假如你的连接点具备txindex(维护保养全部买卖的数据库索引),那麼在你第一次运作0.17.0(或升级的)手机客户端时,这一txindexdb便会开展转移,这很有可能必须好多个钟头的時间。在转移进行以前,你的连接点将失灵。
如果你第一次运作0.15.0或更新版本的手机客户端时,你的链态数据库查询将转化成一种新的文件格式,这在于你设备的速率,所花销的時间从数分钟到三十分钟不一。
留意,区块链数据库查询文件格式在0.8.0版本号中也发生了转变,而且在0.8版本号以前的手机客户端到0.15.0版本号的手机客户端并沒有在线升级编码。在0.7.x版本号或较早版本号的手机客户端,没法完成立即升級(必须再次免费下载区块链技术)。但是,和以往一样的是,旧版的钱夹依然是适用的。
退级预警信息
此版本号的链条式数据库查询,与此前的版本号并兼容问题,因而,假如你运作的是0.15版本号的手机客户端,随后你决策转换回一切更老版的手机客户端。你也就必须运作老版的手机客户端,并应用-reindex-chainstate选择项来复建旧文件格式的链条式算法设计。
假如你的连接点已开启了建造方式,那麼就想要你再次免费下载同歩全部比特币区块链。
兼容模式
BitcoinCore手机客户端已在好几个电脑操作系统上开展了普遍检测,在其中包含Linux核心电脑操作系统、macOS10.10+、Windows7及其升级的电脑操作系统(WindowsXP并不兼容)。
BitcoinCore在别的相近Unix系统软件的电脑操作系统上也是能够 工作中的,但检测相对性较少。
必须留意的是,macOS电脑操作系统小于10.10版本号就没法运作0.17.0手机客户端,这是由于0.17.0是应用Qt5.9.x搭建的,它并不兼容小于10.10版本号的macOS电脑操作系统。
明显的变更
变更配备选择项
-includeconf=可用以包括额外环境变量。它只在bitcoin.conf文档内时起功效,并不功效于包括文档或cmd。它可包括好几个文档。作业者可根据cmd-noincludeconf禁止使用这一作用。一定要注意,比如-includeconf那样的多主要参数指令,将遮盖掉此前的-noincludeconfcmd;
noincludeconf=1includeconf=relative.conf
bitcoin.conf将依然包括relative.conf。
升级图形界面设计
在主菜单栏中,区块存储可在主要参数挑选栏中开展限定。而注销此设定,必须再度免费下载详细的区块链技术。此方式与-txindex及其-rescan是兼容问题的。
外界钱夹文档
-wallet=选择项如今接纳了全途径,已不必须把钱夹置放于-walletdir文件目录之中。
新创建的钱夹文件格式
假如-wallet=特定了一个不会有的途径,那麼它如今将在特定部位建立一个钱夹文件目录(包含一个wallet.dat数据库文件,一个db.log文件及其database/log.??????????文档),而不仅是在途径中建立一个数据库文件,并将系统日志文档存储在父文件目录之中。这促使备份数据钱夹的实际操作会比之前更简易,由于特定的钱夹途径能够 立即存档,而无须在父文件目录中搜索买卖日志文件。
为了更好地完成向后适配,钱夹途径是以-walletdir文件目录中目前数据库文件之名,则将再次被接纳,并像之前一样被表述。
钱夹的动态性载入及建立
之前,钱夹仅有在cmd或bitcoin.conf文档中界定-wallet主要参数时,才可以完成载入或建立。而如今,手机客户端就可完成在运作时进行钱夹动态性的载入、建立和卸载掉实际操作:
目前的钱夹可根据启用loadwalletRPC(远程控制全过程启用)来完成载入。钱夹能够 特定为文档/目标目录(务必坐落于walletdir文件目录之中),或做为文档/文件目录的绝对路径。
新的钱夹能够 根据启用createwalletRPC(远程控制全过程启用)来开展建立(或载入)。所出示的名字,务必和walletdir文件目录中的钱夹文档或当今载入的钱夹的姓名多元化。
载入钱夹能够 根据启用unloadwalletRPCcmd完成载入;
此特点现阶段只有根据RPC插口完成。
可选买卖(Coinselection)
Partialspendavoidance(一部分花销避开)
当一个详细地址被用以付款数次时,来源于这种分离出来付款的币,就可独立地开展应用,而那样会联接到其他详细地址,进而不利于买卖的隐私保护性。
而新版本手机客户端加上了一种新的-avoidpartialspends操作码(初始值为false)。假如开启了这一作用,那钱夹一直会把目前的UTXO聚集到同一个详细地址,即便它会造成高些的花费。那样做就可以提升买卖的隐私保护性。
测网和RegTest测试网络的配备一部分
如今,单独环境变量,可完成为不一样的网络连接设置不一样的选择项了。完成方式以下:
main.uacomment=bitcointest.uacomment=bitcoin-testnetregtest.uacomment=regtest[main]mempoolsize=300[test]mempoolsize=100[regtest]mempoolsize=20
依据环境变量的标准,addnode=,connect=,port=,bind=,rpcport=,rpcbind=及其wallet=选择项将只适用BTC主网。
钱夹的‘标识’和‘帐户’API
最新版本的钱夹手机客户端引进了一个新的‘标识-label’API。它是为了更好地替代被停止使用的‘帐户-account’API。根据'-deprecatedrpc=accounts'主要参数,这一‘account’API仍可在V0.17手机客户端之中应用,而在V0.18版本号手机客户端中,它将被彻底清除。
这一标识RPC方式和帐户作用是十分相近的,差别取决于下列这几个方面:
标识能够 在一切详细地址上开展设定,而不仅是接受详细地址。此作用之前仅根据GUI能用。
标识可根据setlabelRPC的方式,分配全部详细地址,来开展删掉;
不兼容从一个标识来推送买卖,也不兼容明确一笔买卖是以哪一个标识推送而成的;
标识沒有说白了的账户余额;
下列是RPC方式的转变:
被清除的方式
新的方式
注解
getaccount
getaddressinfo
Getaddressinfo回到了一个具备详细地址信息内容的JSON目标,而不仅是字符串数组的账户名称
getaccountaddress
n/a
由于标识沒有关系的接受详细地址,因此 getaccountaddress就沒有更换选择项了
getaddressesbyaccount
getaddressesbylabel
Getaddressesbylabel回到了一个JSON目标,其详细地址为密匙,而不是字符串数组目录
getreceivedbyaccount
getreceivedbylabel
个人行为上沒有产生变化
listaccounts
listlabels
Listlabels不容易回到账户余额,也不会接纳minconf和watchonly主要参数
listreceivedbyaccount
listreceivedbylabel
这二种方式都回到新的标识字段名,及其用以向后适配的帐户字段名
move
n/a
沒有取代方式
sendfrom
n/a
沒有取代方式
setaccount
setlabel
这二种方式都具备:1、容许将标识分派给一切详细地址,而不是在详细地址不接受详细地址时引起不正确。2、删掉与某详细地址关联的此前标识,当应用该标识的最终详细地址被分配到另一个标识时。而不是开展隐式的getaccountaddress启用(保证此前的标识依然具备一个接受详细地址);
变更过的方式
注解
addmultisigaddress
将主要参数account重新命名为label,假如用'-deprecatedrpc=accounts'运作,依然接纳向后兼容模式的account。
getnewaddress
将主要参数account重新命名为label,假如用'-dep,如果用'-deprecatedrpc=accounts'运行,仍然接受向后兼容性的account。

getnewaddress

将参数account重命名为 label,如果用 '-deprecatedrpc=accounts'运行,仍然接受向后兼容性的account。

listunspent

返回新的标签字段,如果使用'-deprecatedrpc=accounts'运行,account字段将将返回以向后兼容。

sendmany

将参数account重命名为 dummy,如果提供,则这个dummy参数必须设置为空字符串,除非使用 -deprecatedrpc=accounts 参数(在这种情况下,功能不变)运行

listtransactions

将参数account重命名为 dummy,如果提供,则这个dummy必须设置为*字符串,除非使用 -deprecatedrpc=accounts 参数(在这种情况下,功能不变)运行。

getbalance

account, minconf 以及include_watchonly参数被弃用了,这些参数只有在使用 '-deprecatedrpc=accounts'运行时才能够使用。

 

 

BIP 174 : 支持部分签名比特币交易(Partially Signed Bitcoin Transactions support)
 

BIP 174 PSBT 是用于尚未完全签名的比特币交易的一种交换格式,它与相关元数据一起协助对像进行签署。其旨在简化多方合作交易时的工作流程。例子包括硬件钱包、多重签名设置,以及CoinJoin交易。

 

整体工作流程
总体而言,一笔具有完整签名的比特币交易,其构建经历了以下步骤:

一名创建者(Creator)提出了一笔要创建的特定交易。它构造了一笔包含某些输入(input)和输出(output),但没有附加元数据的PSBT交易;

对于每一个输出(output),更新者(Updater)会把交易所花费的UTXO信息添加到 PSBT交易当中;

潜在的其他更新者,会把每一个输入(以及可能的输出)中所涉及的脚本和公钥信息添加到PSBT交易当中;

签名者(Signers)会检查这笔PSBT交易及其元数据,然后决定是否同意交易。它们可以使用UTXO当中的数量信息来评估所涉及的价值和费用。如果同意,它们就会为具有相关密钥的输入,生产一个部分签名(partial signature)。

决策者(Finalizer)会把关每一个输入,并转换这个部分签名,并可能把脚本信息写入最终的scriptSig以及/或scriptWitness 。

提取者(Extractor )会从一笔PSBT交易当中,提取并生产出一笔有效的比特币交易。

一般来说,上面的每一个参与者(不包括创建者和提取者)会简单地把越来越多的数据添加到特定的PSBT交易当中。在简单的工作流程当中,它们必须按顺序操作,将 PSBT交易从一方传递到下一方,直到提取者(Extractor )可以将其转换为一笔真正的比特币交易。为了允许并行操作,组合者(Combiners)可以把不同的PSBT交易的元数据合并到同一个未签名的交易当中。

上面使用粗体所表示的名称,是BIP174中定义角色的名称。这对于理解底层步骤很有用,但在实践过程中,软件和硬件通常同时担任了多个角色。

 

RPC
 converttopsbt (创建者)是一个功能性RPC,它将未签名的原始交易转换为PSBT格式,其忽略了现有签名。

createpsbt(创建者)是一个功能性RPC,它负责获取输入和输出列表,并把它们转换为没有附加信息的PSBT,其相当于在converttopsbt之后调用createrawtransaction

walletcreatefundedpsbt (创建者, 更新者) 是一个钱包RPC,它负责创建具有指定输入和输出的PSTB,并向其添加额外的输入,更改以平衡之,并添加相关的元数据。

walletprocesspsbt(更新者,签名者,决策者)是一个钱包RPC,它负责接受PSBT作为输入,将UTXO、密钥和脚本数据添加到那些错过它的输入和输出当中,并可选地对输入进行签名。在可能的情况下,它也能够完成部分签名;

finalizepsbt (决策者,提取者)是一个功能性RPC,它用于完成任何部分签名,如果所有的输入都已完成,则将结果转换为完全签名的交易,该交易可以通过sendrawtransaction 进行广播;

combinepsbt (组合者)是一个功能性RPC,它的作用就是作为一个组合者,它可以在任何工作流程的任何时间点使用,其可以将信息添加到同一PSBT的不同版本当中。特别地,它对于多个更新者或签名者输出的组合而言,是有用的。

decodepsbt是一个诊断型RPC,它可以用于显示PSBT交易中所有的信息,并计算它的最终费用。

 

将非HD钱包升级为HD钱包
 

自Bitcoin Core 0.13.0版本客户端发布以来,Bitcoin Core 就可以支持创建新的BIP 32 分层确定性(HD)钱包,但旧的非HD钱包无法升级到HD钱包。现在,我们可通过-upgradewallet 命令行选项将非HD钱包升级到HD钱包。这一升级,将导致密钥池中的所有密钥会被标记为已使用,并生成新的密钥池。执行此升级时,操作者必须做好钱包备份。

此外,-upgradewallet命令行还可以把非分裂HD链(用m/0'/0'/i'生成的所有密钥)升级到一个分裂HD链(接收用 'm/0'/0'/i'生成的密钥,以及用m'/0'/1'/i'生成的更改密钥)。当发生此升级时,密钥池中已有的所有密钥,将保留在密钥池中以供使用,直到升级前所有的密钥被耗尽。这是为了避免备份及降级的问题(当一些密钥可能来自更改密钥池时)。用户们可以使用newkeypool RPC 命令行来使用新的分裂HD链密钥池,来标记密钥池中已使用的所有密钥,并开始使用这个分裂HD链中生成的新密钥池。

 

HD 主密钥控制
 

一个新的RPC sethdseed 已被引入到客户端当中,它允许用户设置新的HD种子,或设置自己的HD种子。需要注意的是,在设置新的HD种子时,用户必须进行新的备份。

 

重要性较低的 RPC更改
createrawtransaction RPC 现在将为outputs参数接受数组(array)或dictionary (保持兼容性),这意味着交易输出顺序,可以由客户端指定。

fundrawtransaction RPC 将拒绝先前被否定的 reserveChangeKey 选项;

sendmany 将负责打乱输出(output)以改善隐私性,因此,任何先前预期的关于输出排序的行为都变得不可靠了;

新的testmempoolaccept RPC ,可用来测试在不添加一笔交易的情况下,看其是否会被交易储蓄池(mempool)所接受;

JSON交易分解现在包括了一个权重字段,其它提供了交易的确切权重。在JSON模式下,它将纳入REST /rest/tx/ 以及/rest/block/ 端点中。它也会包含于getblock (verbosity=2),listsinceblock,listtransactions, 以及getrawtransaction RPC命令中。

新的fees字段将引入getrawmempool,getmempoolancestors, getmempooldescendants 以及 getmempoolentry,当子字段 ancestor, base, modified 以及 descendant以BTC计价,verbosity设置为 true时。这个新的字段会否定先前的费用字段,例如fee, modifiedfee, ancestorfee 以及 descendantfee;

新的RPC getzmqnotifications 会返回有关活跃ZMQ通知的信息。

当比特币并不以任何-wallet=
选项启动时,由getwalletinfo和listwallets 这两个RPC所返回的默认钱包名现在会是空字符串 "" ,而不是先前的"wallet.dat" 。如果是通过-wallet=选项启动的,则和以前没有变化,任何钱包的名称只是其字符串。

现在,将一个空字符串("") 作为address_type参数传递给getnewaddress, getrawchangeaddress, addmultisigaddress, fundrawtransaction RPC 会是一个错误。以前,这将回到使用默认地址类型。它仍然可以传递空字符串或将未设置的参数保留为使用默认地址类型。

空的多重签名输出,将不再自动被当做传入支付。由于此功能仅适用于多重签名输出,也就是你拥有钱包当中所有私钥的情况。与单个密钥方案相比,这通常没有什么用处。此外,当前并没有定义这样的输出地址格式,并且钱包软件不能很容易地发送给它。listtransactions,listunspent 命令行将不再显示这些输出,这些输出也不会和你余额有关,除非它们被明确监视(用十六进制脚本参数importaddress或importmulti,signrawtransaction*也可以使用)。

getwalletinfo RPC 现在会返回一个hdseedid值,它始终与不正确命名的hdmasterkeyid值相同。hdmasterkeyid将在V0.18版本客户端中被删除。

 

其他API更改
 

在dumpwallet 输出中的inactivehdmaster 已被更改为inactivehdseed

日志
日志时间戳的格式现在是ISO 8601 (例如"2018-02-28T12:34:56Z")。

当运行带有 -debug,而没有-daemon的bitcoind时,记录stdout现在就成为了默认行为。设置-printtoconsole=1 不再隐含地禁止记录到debug.log。相反,我们可通过设置-debuglogfile=0 来显式禁用记录到文件。

 

交易索引变化
 

交易索引现在和主节点过程分开构建,这意味着 -txindex 操作码,可在没有完全重新索引的情况下进行toggled切换。如果bitcoind是用-txindex 在一个已部分或完全同步的节点上运行的,则交易索引可在后台建立,并且一旦被捕获就可使用。当从运行-txindex,切换到不带这一flag的运行时,交易索引数据库将不会自动被删除,这意味着,我们可以在稍后的时间里重新打开它,而无需重新同步。

 

区块限制功能
 

在V0.15.1
比特币客户端中文版当中,允许矿工限制其区块大小的-blockmaxsize 选项遭到了反对,现在这个选项被移除掉了。如果矿工们想要限制区块的大小,他们应使用-blockmaxweight 这个选项。

 

中断对Python  2.0的支持
 

对于所有测试文件及工具而言,新版本的客户端对Python 2.0的支持已经中断。

最后,感谢所有对该版本
比特币客户端中文版作出直接贡献的人,也感谢帮助翻译的每一个人。
免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。