COIN:比特币0.19.0版本Core客户端正式发布,默认启用bech32地址格式并禁用BIP70_kucoin交易平台官网

据比特币Core协议首席维护者WladimirJ.vanderLaan在github透露,BitcoinCore最新版本客户端0.19.0日前已正式发布,这一版本客户端不仅提供了一些新的功能(例如BIP158区块过滤器),其还部分提升了比特币的隐私功能,值得注意的是,新版本客户端默认启用了兼容隔离见证的bech32地址格式,并默认禁用了BIP70付款请求协议。

据悉,比特币下一个重要版本客户端?v0.20.0,预计将于2020年5月份发布。

以下是0.19.0版本core客户端的具体更新说明:

比特币0.19.0版本Core客户端现可通过以下网址获得:

https://bitcoincore.org/bin/bitcoin-core-0.19.0/

此版本更新,包括了新的功能、各种bug修复、性能提升以及翻译更新。

开发者可使用GitHub的问题跟踪器上报错误:

https://github.com/bitcoin/bitcoin/issues

若要接受安全及更新通知,请订阅:

https://bitcoincore.org/en/list/announcements/join/

一、如何更新

如果你运行的是旧版本客户端,请关闭它,直至其完全关闭,然后再运行安装程序或拷贝覆盖至/Applications/Bitcoin-Qt或bitcoind/bitcoin-qt。

直接从旧版本的BitcoinCore客户端进行升级是可能的,但如果需要迁移datadir,则可能需要一些时间。旧版本的BitcoinCore客户端通常是支持的。

二、兼容性

BitcoinCore客户端已在多个操作系统上进行了广泛测试,其中包括Linux内核操作系统、macOS10.10+、Windows7以及更新的操作系统。不建议在不支持的系统上使用BitcoinCore客户端。

BitcoinCore在其他类似Unix系统的OS上也是可工作的,但测试相对较少。

需要注意的是,macOS操作系统低于10.10版本,就无法运行高于0.17.0版本的BitcoinCore客户端,这是因为0.17.0是使用Qt5.9.x构建的,它并不支持低于10.10版本的macOS操作系统。

此外,当macOS“dark模式”被激活时,BitcoinCore不会改变外观。

运行macOSCatalina系统的用户可能需要“右键单击”,然后选择“Open”以打开BitcoinCore.dmg。这是因为苹果公司提出了新的签名要求,而BitcoinCore项目目前还没有遵守这一要求。

三、显著的更改

3、1新用户文档

降低内存(

Reducememory)建议对在内存有限系统上运行BitcoinCore客户端进行了配置调整。(#16339)

3、2新的RPC

getbalances返回一个包含所有余额的对象。有关详细信息,请参阅getbalances的RPC帮助部分。新的RPC旨在替换getbalance,getunconfirmedbalance以及getwalletinfo中的balance字段。这些旧的调用和字段可能在将来的版本中会被删除。

setwalletflag设置和消除钱包flag,启用或禁用特定于现有钱包的特性,如在这些发布说明中其它地方记录的新avoid_reuse功能。(#13756)

getblockfilter获取指定区块的BIP158过滤器。仅当已使用-blockfilterindex配置选项创建区块过滤器时,才启用此RPC。(#14121)

3、3新的设置

-blockfilterindex允许为整个区块链创建BIP158区块过滤器。过滤器将在后台创建,目前其使用会大约占用4GB的空间。注意:虽然本地用户可使用getblockfilterRPC获得区块过滤器,但此版本的BitcoinCore不在P2P网络上提供区块过滤器。(#14121)

3、4更新的设置

whitebind和whitelist现在接受一个权限列表,以提供使用指定接口或IP地址进行连接的对等方。如果没有使用地址或CIDR网络指定权限,则隐式默认权限与早期版本相同。有关可用权限的详细信息,请参见这两个选项的bitcoind-help(#16248)

设置自定义dbcache值的用户,可以在不使用任何实际内存的情况下稍微增加设置。最近的变化减少了大约9%的内存使用,并使链式状态计算更加准确。例如,如果之前设置的值为“450”,使用大约相同的实际内存量,你现在可设置的值为"500"。(#16957)

3、5更新的RPC

注:一些主要用于测试的低levelRPC更改,放到了下面的低level更改部分内容中。

sendmany不再有minconf参数。这个参数没有很好地指定,即使钱包的币选择成功,也会导致RPC错误。想要影响币选择的用户,可使用现在的-spendzeroconfchange,-limitancestorcount,-limitdescendantcount以及-walletrejectlongchains配置参数。(#15596)

getbalance和sendtoaddress,加上新的RPCgetbalances和createwallet,现在接受一个“avoid_reuse”参数,该参数控制是否应在操作中包含已经使用的地址。此外,即使尚未通过-avoidpartialspends命令行标志启用此功能,当启用avoid_reuse时,sendtoaddress也将避免部分开销,因为不这样做可能会在地址重用的情况下使用“错误”的UTXO。(#13756)

带有include_watchonly参数或includeWatching选项的RPC,现在对于只读钱包默认为true。受影响的RPC有:getbalance,listreceivedbyaddress,listreceivedbylabel,listtransactions,listsinceblock,gettransaction,walletcreatefundedpsbt以及fundrawtransaction。(#16383)

如果钱包标志"avoid_reuse"被启用了,listunspent现在为每个输出返回一个“reused”bool。(#13756)

getblockstats现在使用BlockUndo数据代替交易索引,使其更快,而不再依赖于-txindex配置选项,并且所以未修剪的区块都有此功能。(#14802)

utxoupdatepsbt现在接受一个描述符参数,该参数将在已知时填写输入和输出脚本和Key。当提供一个描述符来显示它们正在使用隔离见证输出时,P2SH-witness输入将从UTXO集中填充。有关详细信息,请参阅RPC帮助文本。(#15427)

如果交易费超过配置选项-maxtxfee的值,sendrawtransaction和testmempoolaccept将不再接受allowhighfees参数以使mempool接受失败。当使用maxfeerate参数调用任何一个RPC时,现在有一个硬编码的预设最大费率可被更改。(#15620)

除非使用配置选项-deprecatedrpc=size,否则getmempoolancestors、getmempooldescendants、getmempoolentry以及getrawmempool不再返回范围字段。相反,将返回新的vsize字段和交易的虚拟大小。(#15637)

getwalletinfo现在包含一个scanning字段,该字段可为false,也可包含钱包扫描历史记录区块的持续时间和进度信息的对象,以查看影响其余额的交易。(#15730)

gettransaction现在接受第三个(布尔)参数verbose。如果设置为true,则将向包含解码交易的响应中添加新的解码字段。传递verbose时,此字段等效于RPCdecoderawtransaction或RPCgetrawtransaction。(#16185,#16866,#16873)

createwallet接受一个新的密码短语参数。如果设置,这将创建用给定密码短语加密的新钱包。如果未设置或设置为空字符串,则不会使用加密。(#16394)

getchaintxstatsRPC现在返回window_final_block_height的附加key。(#16695)

getmempoolentry现在提供了一个权重字段,其中包含BIP141中定义的交易权重。(#16647)

getnetworkinfo和getpeerinfo命令现在包含一个带有解码网络服务标志的新字段。(#16786)

getdescriptorinfo现在返回一个额外的checksum字段,该字段包含用户提供的未修改描述符的校验和。(#15986)

joinpsbts现在对结果连接的PSBT输入和输出顺序进行无序处理。而在以前,输入和输出是按提供PSBT的顺序添加的,这使得输入与输出的关联是容易的,从而对隐私不利。

如果-walletrbf配置选项设置为true,walletcreatefundedpsbt现在会发出BIP125费用替代法信号。

3、6?GUI更改

GUI钱包现在默认提供bech32地址,用户可以在invoice生成期间使用GUI切换更改地址类型,或者使用-addresstype配置选项更改默认地址类型。(#15711,#16497)

在0.18.0版本钱包中,./configure标志被引入了,以允许在GUI中禁用BIP70支持。而在0.19.0版本钱包中,此标志现在默认为禁用。如果要在GUI中编译支持BIP70,你可以将--enable-bip70传递给./configure。

3、7废弃或删除的配置选项

-mempoolreplacement已被移除,尽管默认节点行为保持不变。此选项以前允许用户阻止节点接受或中继BIP125交易替换。它与继续存在的配置选项-walletrbf不同。(#16171)

3、8废弃或删除的RPC

bumpfee不再接受totalFee选项,除非指定了配置参数deprecatedrpc=totalFee,此参数将在后续版本中被完全删除。(#15996)

bumpfee有一个新的fee_rate选项来替代已弃用的totalFee。(#16727)

generate在BitcoinCore0.18版本中被弃用后,现在已被正式移除。请改用generatetoaddressRPC。(#15492)

3、9P2P更改

BIP61拒绝消息在0.18版本中被弃用,它们现在为默认禁用,但你可通过设置-enablebip61命令行选项来启用它。BIP61拒绝消息将在未来版本的客户端中被完全删除。(#14054)

为了消除BitcoinCore中众所周知的拒绝服务向量,特别是对于具有spinningdisk的节点,新版本客户端已将-peerbloomfilters配置选项的默认值更改为false。这可防止比特币Core客户端发送BIP111NODE_BLOOM服务标志、接受BIP37BLOOM过滤器或服务merkle区块或与BLOOM过滤器匹配的交易。而仍希望提供BLOOM过滤器支持的用户,可以将配置选项设置为true,以重新启用对BIP111和BIP37的支持,或者使用本发布说明中其他地方描述的更新的-whitebind和-whitelist配置选项仅对特定对等方启用BIP37支持。在不久的将来,使用公共BIP111/BIP37节点的轻客户端,应该仍能够连接到较早版本的BitcoinCore和手动启用BIP37支持的节点,但此类软件的开发人员,应考虑迁移到使用特定BIP37节点或替代的交易过滤系统。(#16152)

默认情况下,BitcoinCore客户端现在将建立两个专门用于区块中继的额外出站连接。不会在这些连接上处理任何交易或地址信息。这些连接旨在增加很少的额外内存或带宽资源需求,但会使某些分区攻击更难执行。(#15759)

3、10杂项CLI更改

bitcoin-cli-getinfo中的testnet字段已重命名为chain,现在返回BIP70中定义的当前网络名。(#15566)

四、低level更改

4、1RPC

getblockchaininfo不再返回bip9_softforks对象。相反,信息被移动到softforks对象中,另外一个type字段描述了BitcoinCore客户端如何确定该软分叉是否处于活动状态。有关详细信息,请参阅RPC帮助。(#16060)

getblocktemplate不再返回包含CSV和segwit的rules数组。(#16060)

getrpcinfo现在返回一个logpath字段,路径为debug.log。(#15483)

4、2测试

由-regtest命令行标志启用的退化测试链,现在要求交易在默认情况下不违反标准策略。这与主网使用的默认值相同,使在regtest测试网上测试主网行为变得更容易。请注意,默认情况下,测试网仍然允许非标准交易,并且可使用-acceptnonstdtxn命令行标志为两个测试链本地调整策略。(#15891)

4、3配置

在默认部分中指定,但未在网络特定部分中指定的设置,现在将产生一个阻止启动的错误,而不仅仅是一个警告,除非网络是主网。这将防止针对主网的设置,应用于测试网或regtest测试网。(#15629)

在支持thread_local的平台上,可以在日志行前面加上导致日志线程的名称。要启用此行为,请使用-logthreadnames=1。(#15849)

4、4网络

当获取由多个对等节点宣布的交易时,BitcoinCore早期版本的客户端将按接收到这些对等方的通知顺序,然后依次下载交易,直到接收到该交易为止。而在新版本客户端中,下载逻辑已更改为随机获取方式,并倾向于将下载请求发送到出站对等端而不是入站对等端。这修复了入站对等方可能阻止节点获取交易的问题。(#14897,#15834)

如果用户正在使用Tor隐藏服务,BitcoinCore客户端也将绑定到标准端口8333,这可防止通过使用相同的非默认端口号泄漏节点身份。(#15651)

4、5Mempool和交易中继

允许每个包有一笔额外的单一祖先交易。以前,如果mempool中的一笔交易有25笔子代交易,或者它和它的所有子代交易都超过101,000vbyte,那么作为子代交易,新接受的交易都将被忽略。现在,新客户端将允许一笔额外的子代交易,前提是它是直接子代,并且子代交易的大小不超过10,000vbyte。这使得像闪电网络这样的两方合约协议,可以为每个参与者提供一个子付费用的输出,而不允许一个恶意参与者填满整个包,从而防止另一个参与者花费他们的输出。(#15681)

输出为v1到v16witness版本的交易,现在被接受到mempool中,进行中继和挖矿操作。试图使用这些输出仍然被政策所禁止。当这一变化被广泛应用时,钱包和服务可以接受任何有效的bech32比特币地址,而无需担心未来版本的隔离见证交易支付将陷入未经确认的状态。(#15846)

传统交易现在必须使用传统编码格式发送,强制执行BIP144中指定的规则。(#14039)

4、5钱包

在修剪模式下,由importwallet、importpubkey、importaddress或importprivkeyRPC触发的重新扫描只有在区块被修剪时才会失败。以前当-prune被设置时,它才会失败,此更改允许将-prune设置为高值,而在第一个区块被修剪之前,对任何导入RPC的调用都不会失败。(#15870)

创建费用高于-maxtxfee的交易时,RPC命令walletcreatefundedpsbt和fundrawtransaction现在将失败,而不是降低费用。请注意,feeRate参数是以每1,000vbyte的BTC指定的,而不是以每vbyte的satoshi指定的。(#16257)

添加了一个新的钱包标志avoid_reuse,启用它后,钱包将区分已使用和未使用的地址,并默认在币选择中不使用前者。当在现有钱包上设置此标志时,需要重新扫描区块链以正确标记先前使用的目的地。再加上"避免部分支出",这可以消除一个严重的隐私问题,即恶意用户可通过将小额支付发送到先前支付的地址来跟踪支出。(#13756)

4、6开发系统更改

目前项目的开发,Python需要>=3.5版本。这包括构建系统、测试框架和linter。之前支持的最低值(3.4版本)已经在2019年3月被弃用。(#14954)

支持的miniUPnPcAPI版本,最低为10。这与Ubuntu16.04LTS和Debian8libminiupnpc-dev包保持兼容。请注意,在Debian上,此软件包仍然易受CVE-2017-8798和CVE-2017-1000494的攻击。(#15993)

五、0.19.0更改日志

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

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

感谢所有直接参与此次软件发布的开发者,他们是:??

251

AaronClauson

AkioNakamura

AlistairMann

AmitiUttarwar

AndrewChow

andrewtoth

AnthonyTowns

AntoineRiard

AseemSood

BenCarman

BenWoosley

bpay

CarlDong

CarnhofDaki

ChrisCapobianco

ChrisMoore

Chuf

clashic

clashicly

CoryFields

DakiCarnhof

DanGershony

DanielEdgecumbe

DanielKraft

DanielMcNally

darosior

DavidA.Harding

DavidReikher

DouglasRoark

ElichaiTurkel

Emil

EmilEngler

ezegom

FabianJahr

fanquake

FelixWeis

FerdinandoM.Ametrano

fridokus

gapeman

GChuf

Gert-JaapGlasbergen

GiulioLombardo

GlennWillen

GrahamKrizek

GregorySanders

grim-trigger

gwillen

HennadiiStepanov

JackMallers

JamesHilliard

JamesO'Beirne

JanBeich

JeremyRubin

JeremyRand

JimPosen

JohnBampton

JohnNewbery

JonAtack

JonLayton

JonasSchnelli

Jonathan"Duke"Leto

Jo?oBarbosa

JoonmoYang

JordanBaczuk

JorgeTimón

JosuGo?i

JulianFleischer

Karl-JohanAlm

KazWesley

keepkeyjon

KirillFomichev

KristapsKaupe

KristianKramer

LarryRuane

LennyMaiorani

LongShao007

LucaVenturini

lucash-dev

LukeDashjr

marcoagner

MarcoFalke

marcuswin

MartinAnkerl

MartinZumsande

MattCorallo

MeshCollider

MichaelFolkson

MiguelHerranz

NathanMarley

NehaNarula

nicolas.dorier

NilsLoewen

nkostoulas

orient

PatrickStrateman

PeterBushnell

PeterWagner

PieterWuille

practicalswift

qmma

r8921039

RJRybarczyk

RussellYanofsky

SamuelDobson

SebastianFalbesoner

setpill

shannon1916

SjorsProvoost

soroosh-sdi

StevenRoose

SuhasDaftuar

tecnovert

THETCR

TimRuffing

TobiasKaderle

TorkelRogstad

UlrichKempken

whythat

WilliamCasarin

WladimirJ.vanderLaan

zenosage

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:0ms0-4:311ms