比特币代码分析4 节点发现机制
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,当程序第一启动时,它并不知道任何活跃节点的ip地址。为了发现一些全节点的ip地址,他们会查询硬编码在比特币内核或BitCoinJ中的,一个或多个DNS域名,在返回的结果中应该包含一个或多个DNS A记
千家信息网最后更新 2025年01月21日比特币代码分析4 节点发现机制
当程序第一启动时,它并不知道任何活跃节点的ip地址。为了发现一些全节点的ip地址,他们会查询硬编码在比特币内核或BitCoinJ中的,一个或多个DNS域名,在返回的结果中应该包含一个或多个DNS A记录,里面有一些可接受新连接的全节点的ip地址。
DNS 种子由比特币社区成员维护。其中一部分提供动态DNS种子服务器,它通过扫描比特币网络,自动获取活动节点的ip地址;其他的提供一些静态DNS种子,这需要手动更新,不过他们很有可能提供不活跃节点的ip地址。不管是动态的,还是静态的DNS种子,如果节点在主网上运行在端口号8333,或在测试网络运行在端口号18333,就会被加入到DNS种子。
DNS种子结果没有被授权,一个恶意的DNS种子运营者或网络中间人能返回仅被自己控制的节点的ip地址,在自己的网络中,孤立节点,并给他们假的交易,区块数据。因为这个原因,程序不应该只依赖一个DNS种子。
然而,节点通常会离开网络或者改变ip地址,这样程序在启动时,在需要多次尝试才有可能连接到比特币网络。这了会增加连接到比特币网络的延迟时间,使得用户在发送交易或检查支付状态前,不得不等待一段时间。
为避免这种延迟,BitcoinJ总是使用动态DNS种子,来获取那些被确定为活跃节点的IP地址。比特币处内核也尝试在降低延迟,避免使用不必要的DNS节点中权衡。如果比特币内核在它的节点数据库中有记录,它就会用11秒时间去连接至少其中一个节点,失败后,才使用DNS节点获取ip地址;如果在11秒内成功建立连接,则不在向DNS种子查询。
节点
种子
地址
网络
内核
动态
时间
程序
延迟
口号
多个
数据
结果
静态
交易
尝试
查询
运行
成功
中间人
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
拾染网络技术
武汉翼游网络技术有限公司
临沂兰山软件开发招聘
hive数据库的时间类型
中国五大网络安全公司
小米链接不到服务器
澳门网络安全中心统一体系
pubhub的服务器地
新兴网络技术会议
淘米网络安全ppt
嵌入式行业的专业软件开发
应收账款查询数据库
黑魂3 服务器
不可替代的app软件开发
计算机网络技术有效发送速率
怎么看服务器的cpu型号
数据库投标方案
智能家居与服务器的区别
搞软件开发的上班时间
cnki数据库是中文数据库嘛
中队开展网络安全大检查
原神为什么玩家不在同一个服务器
软件开发行业缴纳多少税点
php数据库读取与写入
论文数据库检索使用方法
数据库转excel文件
浪潮服务器nic的网口
多方发力网络安全
中通吉网络技术涨薪
你要知道的网络安全知识