mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-21 22:42:04 +01:00
Merge #180: Peer details: connection type follow-ups
79a2576af1
doc: update ConnectionType Doxygen documentation (Jon Atack)f3153dc08f
gui: improve markup handling of connection type tooltip (Jon Atack)4f09615733
gui: return inbound {full, block} relay type in peer details (Jon Atack) Pull request description: Three follow-ups to #163: - return relay type for inbound peers - improve markup handling in the tooltip to facilitate translations - update ConnectionType doxygen documentation  ACKs for top commit: hebasto: re-ACK79a2576af1
, only suggested changes since my [previous](https://github.com/bitcoin-core/gui/pull/180#pullrequestreview-564894781) review. jarolrod: ACK79a2576af1
, tested on macOS 11.1 with Qt 5.15.2 laanwj: Code review ACK79a2576af1
Tree-SHA512: 4a8d8f8bfbaefd68e8d1bf3b20d29e4a8e8cfe97b2f8d59d3a4c338a50b61de0a67d97bd8646c04bd5df5a9679c4954b9b46e7cba24bb89f4d0e44e94cf9d66c
This commit is contained in:
commit
d1ddead09a
5 changed files with 26 additions and 13 deletions
11
src/net.h
11
src/net.h
|
@ -111,7 +111,8 @@ struct CSerializedNetMsg
|
|||
* connection. Aside from INBOUND, all types are initiated by us.
|
||||
*
|
||||
* If adding or removing types, please update CONNECTION_TYPE_DOC in
|
||||
* src/rpc/net.cpp. */
|
||||
* src/rpc/net.cpp and src/qt/rpcconsole.cpp, as well as the descriptions in
|
||||
* src/qt/guiutil.cpp and src/bitcoin-cli.cpp::NetinfoRequestHandler. */
|
||||
enum class ConnectionType {
|
||||
/**
|
||||
* Inbound connections are those initiated by a peer. This is the only
|
||||
|
@ -122,7 +123,7 @@ enum class ConnectionType {
|
|||
|
||||
/**
|
||||
* These are the default connections that we use to connect with the
|
||||
* network. There is no restriction on what is relayed- by default we relay
|
||||
* network. There is no restriction on what is relayed; by default we relay
|
||||
* blocks, addresses & transactions. We automatically attempt to open
|
||||
* MAX_OUTBOUND_FULL_RELAY_CONNECTIONS using addresses from our AddrMan.
|
||||
*/
|
||||
|
@ -130,8 +131,8 @@ enum class ConnectionType {
|
|||
|
||||
|
||||
/**
|
||||
* We open manual connections to addresses that users explicitly inputted
|
||||
* via the addnode RPC, or the -connect command line argument. Even if a
|
||||
* We open manual connections to addresses that users explicitly requested
|
||||
* via the addnode RPC or the -addnode/-connect configuration options. Even if a
|
||||
* manual connection is misbehaving, we do not automatically disconnect or
|
||||
* add it to our discouragement filter.
|
||||
*/
|
||||
|
@ -150,7 +151,7 @@ enum class ConnectionType {
|
|||
* although in our codebase feeler connections encompass test-before-evict as well.
|
||||
* We make these connections approximately every FEELER_INTERVAL:
|
||||
* first we resolve previously found collisions if they exist (test-before-evict),
|
||||
* otherwise connect to a node from the new table.
|
||||
* otherwise we connect to a node from the new table.
|
||||
*/
|
||||
FEELER,
|
||||
|
||||
|
|
|
@ -1079,7 +1079,7 @@
|
|||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="peerConnectionTypeLabel">
|
||||
<property name="toolTip">
|
||||
<string>The type of peer connection:<ul><li>Inbound: initiated by peer</li><li>Outbound Full Relay: default</li><li>Outbound Block Relay: does not relay transactions or addresses</li><li>Outbound Manual: added using RPC %1 or %2/%3 configuration options</li><li>Outbound Feeler: short-lived, for testing addresses</li><li>Outbound Address Fetch: short-lived, for soliciting addresses</li></ul></string>
|
||||
<string>The type of peer connection: %1</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Connection Type</string>
|
||||
|
|
|
@ -764,10 +764,10 @@ QString NetworkToQString(Network net)
|
|||
assert(false);
|
||||
}
|
||||
|
||||
QString ConnectionTypeToQString(ConnectionType conn_type)
|
||||
QString ConnectionTypeToQString(ConnectionType conn_type, bool relay_txes)
|
||||
{
|
||||
switch (conn_type) {
|
||||
case ConnectionType::INBOUND: return QObject::tr("Inbound");
|
||||
case ConnectionType::INBOUND: return relay_txes ? QObject::tr("Inbound Full Relay") : QObject::tr("Inbound Block Relay");
|
||||
case ConnectionType::OUTBOUND_FULL_RELAY: return QObject::tr("Outbound Full Relay");
|
||||
case ConnectionType::BLOCK_RELAY: return QObject::tr("Outbound Block Relay");
|
||||
case ConnectionType::MANUAL: return QObject::tr("Outbound Manual");
|
||||
|
|
|
@ -230,7 +230,7 @@ namespace GUIUtil
|
|||
QString NetworkToQString(Network net);
|
||||
|
||||
/** Convert enum ConnectionType to QString */
|
||||
QString ConnectionTypeToQString(ConnectionType conn_type);
|
||||
QString ConnectionTypeToQString(ConnectionType conn_type, bool relay_txes);
|
||||
|
||||
/** Convert seconds into a QString with days, hours, mins, secs */
|
||||
QString formatDurationStr(int secs);
|
||||
|
|
|
@ -16,9 +16,10 @@
|
|||
#include <chainparams.h>
|
||||
#include <interfaces/node.h>
|
||||
#include <netbase.h>
|
||||
#include <rpc/server.h>
|
||||
#include <rpc/client.h>
|
||||
#include <rpc/server.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <util/string.h>
|
||||
#include <util/system.h>
|
||||
#include <util/threadnames.h>
|
||||
|
||||
|
@ -459,11 +460,22 @@ RPCConsole::RPCConsole(interfaces::Node& node, const PlatformStyle *_platformSty
|
|||
|
||||
ui->splitter->restoreState(settings.value("PeersTabSplitterSizes").toByteArray());
|
||||
|
||||
QChar nonbreaking_hyphen(8209);
|
||||
constexpr QChar nonbreaking_hyphen(8209);
|
||||
const std::vector<QString> CONNECTION_TYPE_DOC{
|
||||
tr("Inbound Full/Block Relay: initiated by peer"),
|
||||
tr("Outbound Full Relay: default"),
|
||||
tr("Outbound Block Relay: does not relay transactions or addresses"),
|
||||
tr("Outbound Manual: added using RPC %1 or %2/%3 configuration options")
|
||||
.arg("addnode")
|
||||
.arg(QString(nonbreaking_hyphen) + "addnode")
|
||||
.arg(QString(nonbreaking_hyphen) + "connect"),
|
||||
tr("Outbound Feeler: short-lived, for testing addresses"),
|
||||
tr("Outbound Address Fetch: short-lived, for soliciting addresses")};
|
||||
const QString list{"<ul><li>" + Join(CONNECTION_TYPE_DOC, QString("</li><li>")) + "</li></ul>"};
|
||||
ui->peerConnectionTypeLabel->setToolTip(ui->peerConnectionTypeLabel->toolTip().arg(list));
|
||||
ui->dataDir->setToolTip(ui->dataDir->toolTip().arg(QString(nonbreaking_hyphen) + "datadir"));
|
||||
ui->blocksDir->setToolTip(ui->blocksDir->toolTip().arg(QString(nonbreaking_hyphen) + "blocksdir"));
|
||||
ui->openDebugLogfileButton->setToolTip(ui->openDebugLogfileButton->toolTip().arg(PACKAGE_NAME));
|
||||
ui->peerConnectionTypeLabel->setToolTip(ui->peerConnectionTypeLabel->toolTip().arg("addnode").arg(QString(nonbreaking_hyphen) + "addnode").arg(QString(nonbreaking_hyphen) + "connect"));
|
||||
|
||||
if (platformStyle->getImagesOnButtons()) {
|
||||
ui->openDebugLogfileButton->setIcon(platformStyle->SingleColorIcon(":/icons/export"));
|
||||
|
@ -1108,7 +1120,7 @@ void RPCConsole::updateDetailWidget()
|
|||
ui->timeoffset->setText(GUIUtil::formatTimeOffset(stats->nodeStats.nTimeOffset));
|
||||
ui->peerVersion->setText(QString::number(stats->nodeStats.nVersion));
|
||||
ui->peerSubversion->setText(QString::fromStdString(stats->nodeStats.cleanSubVer));
|
||||
ui->peerConnectionType->setText(GUIUtil::ConnectionTypeToQString(stats->nodeStats.m_conn_type));
|
||||
ui->peerConnectionType->setText(GUIUtil::ConnectionTypeToQString(stats->nodeStats.m_conn_type, stats->nodeStats.fRelayTxes));
|
||||
ui->peerNetwork->setText(GUIUtil::NetworkToQString(stats->nodeStats.m_network));
|
||||
if (stats->nodeStats.m_permissionFlags == PF_NONE) {
|
||||
ui->peerPermissions->setText(tr("N/A"));
|
||||
|
|
Loading…
Add table
Reference in a new issue