BTC0.19.0版本Core客户端即将正式发布,默认启用bech32地址格式并禁用BIP70

[复制链接]
8516 |0
发表于 2019-11-11 17:10:23 | 显示全部楼层 |阅读模式
据BTCCore协议首席维护者Wladimir J. van der Laan在github透露,BitDavinci Core最新版本客户端0.19.0日前已正式完成,这一版本客户端不仅提供了一些新的功能(例如BIP158区块过滤器,用于替代BIP 37的Bloom过滤器),其还部分提升了BTC的隐私特性,值得注意的是,新版本客户端默认启用了兼容隔离见证的bech32地址格式,并默认禁用了BIP70支付请求协议。
据悉,BTC下一个重要版本客户端 v 0.20.0,预计将于2020年5月份发布。
以下是0.19.0版本core客户端的具体更新说明:


BTC0.19.0版本Core客户端现可通过以下网址获得:
https://bitDAC core.org/bin/bitDavinci-core-0.19.0/
此版本更新,包括了新的功能、各种bug修复、性能提升以及翻译更新。
开发者可使用GitHub的问题跟踪器上报错误:
https://github.com/bitDAC/bitDavinci/issues
若要接受安全及更新通知,请订阅:
https://bitDavincicore.org/en/list/announcements/join/

一、如何更新

如果你运行的是旧版本客户端,请关闭它,直至其完全关闭(旧版本可能需要几分钟的时间),然后再运行安装程序(Windows)或拷贝覆盖至/Applications/BitDAC-Qt(Mac系统)或bitDavincid/bitDavinci-qt(Linux系统)。
直接从旧版本的BitDavinci Core客户端进行升级是可能的,但如果需要迁移datadir,则可能需要一些时间。旧版本的BitDAC Core客户端通常是支持的。

二、兼容性

BitDAC Core客户端已在多个操作系统上进行了广泛测试,其中包括Linux 内核操作系统、macOS 10.10+、Windows 7以及更新的操作系统。不建议在不支持的系统上使用BitDAC Core客户端。
BitDAC Core在其他类似Unix系统的OS上也是可工作的, 但测试相对较少。
需要注意的是,macOS操作系统低于10.10版本,就无法运行高于0.17.0版本的BitDavinci Core客户端,这是因为0.17.0是使用Qt 5.9.x构建的,它并不支持低于10.10版本的macOS操作系统。
此外,当macOS“dark模式”被激活时,BitDAC Core不会改变外观。
运行macOS Catalina系统的用户可能需要“右键单击”,然后选择“Open”以打开BitDavinci Core.dmg。这是因为苹果公司提出了新的签名要求,而BitDavinci Core项目目前还没有遵守这一要求。

三、显著的更改

3、1 新用户文档
降低内存(Reduce memory)建议对在内存有限系统上运行BitDavinci Core客户端进行了配置调整。 (#16339)
3、2 新的RPC
[ol]
       
  • getbalances返回一个包含所有余额的对象(mine, untrusted_pending以及immature)。有关详细信息,请参阅getbalances的RPC帮助部分。新的RPC旨在替换getbalance, getunconfirmedbalance以及getwalletinfo中的balance字段。这些旧的调用和字段可能在将来的版本中会被删除。(#15930,#16239)
           
  • setwalletflag 设置和消除钱包flag,启用或禁用特定于现有钱包的特性,如在这些发布说明中其它地方记录的新avoid_reuse功能。 (#13756)
           
  • getblockfilter 获取指定区块的BIP158过滤器。仅当已使用 -blockfilterindex配置选项创建区块过滤器时,才启用此RPC。(#14121)
    [/ol]
    3、3 新的设置
    [ol]
           
  • -blockfilterindex允许为整个区块链创建BIP158区块过滤器。过滤器将在后台创建,目前其使用会大约占用4GB的空间。注意:虽然本地用户可使用getblockfilter RPC获得区块过滤器,但此版本的BitDavinci Core不在P2P网络上提供区块过滤器。(#14121)
    [/ol]
    3、4 更新的设置
    [ol]
           
  • whitebind和whitelist现在接受一个权限列表,以提供使用指定接口或IP地址进行连接的对等方。如果没有使用地址或CIDR网络指定权限,则隐式默认权限与早期版本相同。有关可用权限的详细信息,请参见这两个选项的bitDavincid -help 输出(#16248)
           
  • 设置自定义dbcache值的用户,可以在不使用任何实际内存的情况下稍微增加设置。最近的变化减少了大约9%的内存使用,并使链式状态计算更加准确(以前它低估了内存的使用)。例如,如果之前设置的值为“450”,使用大约相同的实际内存量,你现在可设置的值为"500"。 (#16957)
    [/ol]
    3、5 更新的RPC
    注:一些主要用于测试的低level RPC更改,放到了下面的低level更改部分内容中。
    [ol]
           
  • sendmany不再有minconf参数。这个参数没有很好地指定,即使钱包的币选择成功,也会导致RPC错误。想要影响币选择的用户,可使用现在的-spendzeroconfchange,-limitancestorcount, -limitdescendantcount以及-walletrejectlongchains配置参数。 (#15596)
           
  • getbalance和sendtoaddress,加上新的RPC getbalances和createwallet,现在接受一个“avoid_reuse”参数,该参数控制是否应在操作中包含已经使用的地址。此外,即使尚未通过 -avoidpartialspends命令行标志启用此功能,当启用avoid_reuse时,sendtoaddress也将避免部分开销,因为不这样做可能会在地址重用的情况下使用“错误”的UTPundiO。(#13756)
           
  • 带有include_watch only参数或includeWatching选项的RPC,现在对于只读钱包默认为true。受影响的RPC有:getbalance, listreceivedbyaddress, listreceivedbylabel, listtransactions, listsinceblock, gettransaction, walletcreatefundedpsbt以及fundrawtransaction。 (#16383)
           
  • 如果钱包标志"avoid_reuse" 被启用了,listunspent现在为每个输出返回一个“reused”bool。(#13756)
           
  • getblockstats现在使用BlockUndo数据代替交易索引,使其更快,而不再依赖于 -txindex配置选项,并且所有未修剪的区块都有此功能。(#14802)
           
  • utxoupdatepsbt现在接受一个descriptors参数,该参数将在已知时填写输入和输出脚本和Key。当提供一个描述符来显示它们正在使用隔离见证(segwit )输出时,P2SH-witness输入将从UTPundiO集中填充。有关详细信息,请参阅RPC帮助文本。(#15427)
           
  • 如果交易费超过配置选项-maxtxfee的值,sendrawtransaction和 testmempoolaccept将不再接受allowhighfees参数以使mempool接受失败。当使用maxfeerate参数调用任何一个RPC时,现在有一个硬编码的预设最大费率可被更改。(#15620)
           
  • 除非使用配置选项-deprecatedrpc=size,否则getmempoolancestors、getmempooldescendants、getmempoolentry以及getrawmempool不再返回范围字段。相反,将返回新的vsize字段和交易的虚拟大小(与其它RPC如getrawtransaction一致)。(#15637)
           
  • getwalletinfo现在包含一个scanning字段,该字段可为false(不扫描),也可包含钱包扫描历史记录区块的持续时间和进度信息的对象,以查看影响其余额的交易。(#15730)
           
  • gettransaction现在接受第三个 (布尔)参数verbose。如果设置为true,则将向包含解码交易的响应中添加新的解码字段。传递verbose时,此字段等效于RPC decoderawtransaction或RPC getrawtransaction。 (#16185, #16866, #16873)
           
  • createwallet接受一个新的passphrase参数。如果设置,这将创建用给定密码短语加密的新钱包。如果未设置(默认设置)或设置为空字符串,则不会使用加密。(#16394)
           
  • getchaintxstats RPC 现在返回window_final_block_height的附加 key。(#16695)
           
  • getmempoolentry现在提供了一个weight字段,其中包含BIP141中定义的交易权重。(#16647)
           
  • getnetworkinfo和getpeerinfo命令现在包含一个带有解码网络服务标志的新字段。(#16786)
           
  • getdescriptorinfo现在返回一个额外的checksum字段,该字段包含用户提供的未修改描述符的校验和。(#15986)
           
  • joinpsbts现在对结果连接的PSBT输入和输出顺序进行无序处理。而在以前,输入和输出是按提供PSBT的顺序添加的,这使得输入与输出的关联是容易的,从而对隐私不利(译者注:即新的joinpsbts增强了隐私保护)。
           
  • 如果-walletrbf配置选项设置为true,walletcreatefundedpsbt现在会发出BIP125 费用替代法(Replace-by-Fee)信号。(#15911)
    [/ol]
    3、6  GUI(图形用户界面)更改
    [ol]
           
  • GUI钱包现在默认提供bech32地址,用户可以在invoice生成期间使用GUI切换更改地址类型,或者使用-addresstype配置选项更改默认地址类型。(#15711, #16497)
           
  • 在0.18.0版本钱包中,./configure标志被引入了,以允许在GUI中禁用BIP70支持(默认情况下已启用支持)。而在0.19.0版本钱包中,此标志现在默认为禁用。如果要在GUI中编译支持BIP70,你可以将--enable-bip70传递给./configure。 (#15584)
    [/ol]
    3、7 废弃或删除的配置选项
    [ol]
           
  • -mempoolreplacement已被移除,尽管默认节点行为保持不变。此选项以前允许用户阻止节点接受或中继BIP125交易替换。它与继续存在的配置选项-walletrbf不同。(#16171)
    [/ol]
    3、8 废弃或删除的RPC
    [ol]
           
  • bumpfee不再接受totalFee选项,除非指定了配置参数deprecatedrpc=totalFee,此参数将在后续版本中被完全删除。 (#15996)
           
  • bumpfee有一个新的fee_rate选项来替代已弃用的totalFee。(#16727)
           
  • generate在BitDavinci Core 0.18版本中被弃用后,现在已被正式移除。请改用generatetoaddress RPC。 (#15492)
    [/ol]
    3、9 P2P更改
    [ol]
           
  • BIP 61拒绝消息在0.18版本中被弃用,它们现在为默认禁用,但你可通过设置-enablebip61 命令行选项来启用它。BIP61拒绝消息将在未来版本的客户端中被完全删除。 (#14054)
           
  • 为了消除BitDAC Core中众所周知的拒绝服务向量,特别是对于具有spinning disk的节点,新版本客户端已将-peerbloomfilters配置选项的默认值更改为false。这可防止BTCCore客户端发送BIP111 NODE_BLOOM服务标志、接受BIP37 BLOOM过滤器或服务merkle区块或与BLOOM过滤器匹配的交易。而仍希望提供BLOOM过滤器支持的用户,可以将配置选项设置为true,以重新启用对BIP111和BIP37的支持,或者使用本发布说明中其他地方描述的更新的-whitebind和-whitelist配置选项仅对特定对等方启用BIP37支持。在不久的将来,使用公共BIP111/BIP37节点的轻客户端,应该仍能够连接到较早版本的BitDavinci Core和手动启用BIP37支持的节点,但此类软件的开发人员,应考虑迁移到使用特定BIP37节点或替代的交易过滤系统。(#16152)
           
  • 默认情况下,BitDavinci Core客户端现在将建立两个专门用于区块中继的额外出站连接。不会在这些连接上处理任何交易或地址信息。这些连接旨在增加很少的额外内存或带宽资源需求,但会使某些分区攻击(partitioning attack)更难执行。 (#15759)
    [/ol]
    3、10 杂项CLI更改
    [ol]
           
  • bitDAC-cli -getinfo中的testnet字段已重命名为chain,现在返回BIP70(main、test、regtest)中定义的当前网络名。 (#15566)
    [/ol]

    四、低level更改

    4、1 RPC
    [ol]
           
  • getblockchaininfo不再返回bip9_softforks对象。相反,信息被移动到softforks对象中,另外一个type字段描述了BitDavinci Core客户端如何确定该软分叉是否处于活动状态(例如BIP9或BIP90)。有关详细信息,请参阅RPC帮助。(#16060)
           
  • getblocktemplate不再返回包含CSV和segwit(当前处于活动状态的BIP9部署)的rules数组。(#16060)
           
  • getrpcinfo现在返回一个logpath字段,路径为debug.log。(#15483)
    [/ol]
    4、2 测试
    [ol]
           
  • 由-regtest命令行标志启用的退化测试链,现在要求交易在默认情况下不违反标准策略。这与主网使用的默认值相同,使在regtest测试网上测试主网行为变得更容易。请注意,默认情况下,测试网仍然允许非标准交易,并且可使用-acceptnonstdtxn命令行标志为两个测试链本地调整策略。(#15891)
    [/ol]
    4、3 配置
    [ol]
           
  • 在默认部分中指定,但未在网络特定部分(例如测试网)中指定的设置,现在将产生一个阻止启动的错误,而不仅仅是一个警告,除非网络是主网。这将防止针对主网的设置,应用于测试网或regtest测试网。 (#15629)
           
  • 在支持thread_local的平台上,可以在日志行前面加上导致日志线程的名称。要启用此行为,请使用 -logthreadnames=1 。(#15849)
    [/ol]
    4、4 网络
    [ol]
           
  • 当获取由多个对等节点宣布的交易时,BitDavinci Core早期版本的客户端将按接收到这些对等方的通知顺序,然后依次下载交易,直到接收到该交易为止。而在新版本客户端中,下载逻辑已更改为随机获取方式,并倾向于将下载请求发送到出站对等端而不是入站对等端。这修复了入站对等方可能阻止节点获取交易的问题。 (#14897, #15834)
           
  • 如果用户正在使用Tor隐藏服务,BitDAC Core客户端也将绑定到标准端口8333(即使为透明网连接配置了不同的端口),这可防止通过使用相同的非默认端口号泄漏节点身份。(#15651)
    [/ol]
    4、5 Mempool 和交易中继
    [ol]
           
  • 允许每个包(package)有一笔额外的单一祖先交易。以前,如果mempool中的一笔交易有25笔子代交易,或者它和它的所有子代交易都超过 101,000 vbyte,那么作为子代交易,新接受的交易都将被忽略。现在,新客户端将允许一笔额外的子代交易,前提是它是直接子代,并且子代交易的大小不超过10,000 vbyte。这使得像闪电网络这样的两方合约协议,可以为每个参与者提供一个子付(Child-Pays-For-Parent)费用的输出,而不允许一个恶意参与者填满整个包(package),从而防止另一个参与者花费他们的输出。 (#15681)
           
  • 输出为v1到v16 witness版本(未来的隔离见证版本)的交易,现在被接受到mempool中,进行中继和挖矿操作。试图使用这些输出仍然被政策所禁止。当这一变化被广泛应用时,钱包和服务可以接受任何有效的bech32BTC地址,而无需担心未来版本的隔离见证交易支付将陷入未经确认的状态。 (#15846)
           
  • 传统交易(没有隔离见证输入的交易)现在必须使用传统编码格式发送,强制执行BIP144中指定的规则。(#14039)
    [/ol]
    4、5 钱包
    [ol]
           
  • 在修剪模式下,由importwallet、importpubkey、importaddress或importprivkey RPC触发的重新扫描(rescan)只有在区块被修剪时才会失败。以前当-prune被设置时,它才会失败,此更改允许将-prune设置为高值(例如磁盘大小),而在第一个区块被修剪之前,对任何导入RPC的调用都不会失败。(#15870)
           
  • 创建费用高于-maxtxfee (默认为0.1btc)的交易时,RPC命令 walletcreatefundedpsbt和fundrawtransaction现在将失败,而不是降低费用。请注意,feeRate参数是以每1,000 vbyte的比特币指定的,而不是以每vbyte的satoshi指定的。(#16257)
           
  • 添加了一个新的钱包标志avoid_reuse(默认为关闭),启用它后,钱包将区分已使用和未使用的地址,并默认在币选择中不使用前者。当在现有钱包上设置此标志时,需要重新扫描区块链以正确标记先前使用的目的地。再加上 "避免部分支出" (在BitDavinci Core v0.17.0中添加的功能),这可以消除一个严重的隐私问题,即恶意用户可通过将小额支付发送到先前支付的地址(该地址随后将包含在未来支付的无关输入中)来跟踪支出。(#13756)
    [/ol]
    4、6 开发系统更改
    [ol]
           
  • 目前项目的开发,Python需要>=3.5版本。这包括构建系统、测试框架和linter。之前支持的最低值 (3.4版本)已经在2019年3月被弃用。(#14954)
           
  • 支持的miniUPnPc API 版本,最低为10。这与Ubuntu 16.04 LTS和Debian 8 libminiupnpc-dev包保持兼容。请注意,在Debian上,此软件包仍然易受CVE-2017-8798(仅限于jessie)和CVE-2017-1000494(包括jessie和stretch版)的攻击。(#15993)
    [/ol]

    五、0.19.0更改日志(略)

    有兴趣的读者可以查看原文:https://github.com/bitDavinci/bitDAC/blob/master/doc/release-notes/release-notes-0.19.0.md

    六、参与贡献的开发者名单

    感谢所有直接参与此次软件发布的开发者,他们是:     (译者注:排名不分先后)
    [ol]
           
  • 251
           
  • Aaron Clauson
           
  • Akio Nakamura
           
  • Alistair Mann
           
  • Amiti Uttarwar
           
  • Andrew Chow
           
  • andrewtoth
           
  • Anthony Towns
           
  • Antoine Riard
           
  • Aseem Sood
           
  • Ben Carman
           
  • Ben Woosley
           
  • bpay
           
  • Carl Dong
           
  • Carnhof Daki
           
  • Chris Capobianco
           
  • Chris Moore
           
  • Chuf
           
  • clashic
           
  • clashicly
           
  • Cory Fields
           
  • Daki Carnhof
           
  • Dan Gershony
           
  • Daniel Edgecumbe
           
  • Daniel Kraft
           
  • Daniel McNally
           
  • darosior
           
  • David A. Harding
           
  • David Reikher
           
  • Douglas Roark
           
  • Elichai Turkel
           
  • Emil
           
  • Emil Engler
           
  • ezegom
           
  • Fabian Jahr
           
  • fanquake
           
  • Felix Weis
           
  • Ferdinando M. Ametrano
           
  • fridokus
           
  • gapeman
           
  • GChuf
           
  • Gert-Jaap Glasbergen
           
  • Giulio Lombardo
           
  • Glenn Willen
           
  • Graham Krizek
           
  • Gregory Sanders
           
  • grim-trigger
           
  • gwillen
           
  • Hennadii Stepanov
           
  • Jack Mallers
           
  • James Hilliard
           
  • James O'Beirne
           
  • Jan Beich
           
  • Jeremy Rubin
           
  • JeremyRand
           
  • Jim Posen
           
  • John Bampton
           
  • John Newbery
           
  • Jon Atack
           
  • Jon Layton
           
  • Jonas Schnelli
           
  • Jonathan "Duke" Leto
           
  • João Barbosa
           
  • Joonmo Yang
           
  • Jordan Baczuk
           
  • Jorge Timón
           
  • Josu Goñi
           
  • Julian Fleischer
           
  • Karl-Johan Alm
           
  • Kaz Wesley
           
  • keepkeyjon
           
  • Kirill Fomichev
           
  • Kristaps Kaupe
           
  • Kristian Kramer
           
  • Larry Ruane
           
  • Lenny Maiorani
           
  • LongShao007
           
  • Luca Venturini
           
  • lucash-dev
           
  • Luke Dashjr
           
  • marcoagner
           
  • MarcoFalke
           
  • marcuswin
           
  • Martin Ankerl
           
  • Martin Zumsande
           
  • Matt Corallo
           
  • MeshCollider
           
  • Michael Folkson
           
  • Miguel Herranz
           
  • Nathan Marley
           
  • Neha Narula
           
  • nicolas.dorier
           
  • Nils Loewen
           
  • nkostoulas
           
  • orient
           
  • Patrick Strateman
           
  • Peter Bushnell
           
  • Peter Wagner
           
  • Pieter Wuille
           
  • practicalswift
           
  • qmma
           
  • r8921039
           
  • RJ Rybarczyk
           
  • Russell Yanofsky
           
  • Samuel Dobson
           
  • Sebastian Falbesoner
           
  • setpill
           
  • shannon1916
           
  • Sjors Provoost
           
  • soroosh-sdi
           
  • Steven Roose
           
  • Suhas Daftuar
           
  • tecnovert
           
  • TH以太经典R
           
  • Tim Ruffing
           
  • Tobias Kaderle
           
  • Torkel Rogstad
           
  • Ulrich Kempken
           
  • whythat
           
  • William Casarin
           
  • Wladimir J. van der Laan
           
  • zenosage
    [/ol]

    201911110802181748.jpg

    201911110802181748.jpg
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表