给熟人开的门都有什么待遇
比特币节点对”自己人”的处理和陌生人不同,差异由一组权限位定义。源码注释逐条写明含义:BloomFilter 允许在节点未开启 -peerbloomfilters 的情况下仍被查询布隆过滤器;Relay 让该对等方的交易即使在 -blocksonly 模式下也能被接收和中继,同时不受”追踪多少条交易公告”的上限约束;ForceRelay 意味着即使交易已在自己内存池里也继续转发,且蕴含 Relay;Download 的注释原文是”允许在初始块下载期间执行 getheaders,并在超过 maxuploadtarget 之后继续下载区块”;NoBan 定义为”不可因不当行为被封禁、断开或降权”,并且蕴含 Download;MemPool 允许向节点查询内存池内容。
默认值也值得记:入站白名单对等方默认享受中继待遇(DEFAULT_WHITELISTRELAY 为真),而强制中继默认关闭(DEFAULT_WHITELISTFORCERELAY 为假)。白名单的来源有两条配置路:-whitelist 按对端地址段放行,-whitebind 则把某个监听端口本身变成免检通道——凡从该端口进来的连接自动获得白名单待遇。两条路的配置语义在近期版本里被细化为按网段与方向分别维护的权限表。

每一格权限的代价
这些开关不是福利而是债务。Relay 与 ForceRelay 让节点替熟人传播交易,等于把带宽换给特定对端,被滥用时就是给自己内存池灌水;NoBan 意味着即使对方发送垃圾也不触发封禁机制,你放弃了自动化防御;Download 让白名单对端在你自己的上传预算耗尽后仍能拉取区块,家庭宽带的账要重算;MemPool 把交易排队明细暴露给对方,钱包隐私场景下这是需要掂量的口子。
配置纪律因此是反向的:只授权你最愿意为那个对端放弃的防护。自建节点互联(比如自己的全节点与签名服务器、或两个城市的自己人)常用白名单消除带宽与封禁摩擦;对公共互联网对等方,保持默认即可。
配置样例与两条纪律
把权限位落到纸上更容易掂量。典型的双城自建场景是:自己的第二台节点用 -whitelist 或对该网段配置 -whitebind,换来三样东西——不会因偶发的消息乱序被误封、带宽预算打满后仍能同步区块、彼此的中继不因本地策略被吞。每一样都有代价:放弃了自动封禁、给对端开了超额下载的口子、也让内存池多承接一份外来源的交易。家用节点对陌生入站则通常一格权限都不给——入站连接本来就该默认最严待遇。
两条纪律由此而来。第一,权限按”愿为它放弃多少防护”计价:给一个对端 Relay 之前问自己,如果它被黑并灌垃圾交易,我的带宽和内存池账单能否接受。第二,权限不等于信任传递:白名单解决的是”熟人间规则摩擦”,不豁免任何共识校验——无论对端带不带 NoBan,它送来的区块照旧逐条验规则。把白名单当成提前解除武装的捷径,是把运维便利借成了安全债务;把它当成两个自己人之间的合同,才回到这套机制设计的本意。
顺带澄清两个常见误解。其一,白名单不是”可信交易通行证”:它改变的是节点对对端行为的反应策略(封不封、中不中继、限额与否),共识规则对任何来源一视同仁,坏块永远进不了链。其二,入站与出站白名单近年被拆成独立配置——对某网段的入站放行不再自动等价于对它的出站特权,多线出口的部署值得为此重读一遍当期文档的参数表。
快速问答
问:白名单节点会不受 maxuploadtarget 限制吗? 答:预算照常统计,但被白名单豁免的 Download 权限让对端在超预算后仍可下块;换白名单的账要算在带宽预算之外。
问:I2P 或 Tor 入站算白名单吗? 答:不算,除非显式配置;隐藏服务连接默认按普通入站对待,与 onion 地址本身无关。
问:误把某网段加白后想收回怎么办? 答:改配置文件重启即生效;运行中的白名单条目按启动时快照生效,删除条目重启即可。
风险提示:放宽节点权限会削弱默认防护,误配置可被利用,请谨慎评估暴露面;本文不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。