Merge pull request #163 from SergiySW/rpc_peers_version
Node version in RPC peers & GUI
This commit is contained in:
commit
2afa2ec8ec
5 changed files with 37 additions and 24 deletions
|
@ -1633,6 +1633,17 @@ std::vector <rai::endpoint> rai::peer_container::list ()
|
|||
return result;
|
||||
}
|
||||
|
||||
std::map <rai::endpoint, unsigned> rai::peer_container::list_version ()
|
||||
{
|
||||
std::map <rai::endpoint, unsigned> result;
|
||||
std::lock_guard <std::mutex> lock (mutex);
|
||||
for (auto i (peers.begin ()), j (peers.end ()); i != j; ++i)
|
||||
{
|
||||
result.insert (std::pair <rai::endpoint, unsigned> (i->endpoint, i->network_version));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
rai::endpoint rai::peer_container::bootstrap_peer ()
|
||||
{
|
||||
rai::endpoint result (boost::asio::ip::address_v6::any (), 0);
|
||||
|
|
|
@ -180,6 +180,7 @@ public:
|
|||
std::vector <peer_information> representatives (size_t);
|
||||
// List of all peers
|
||||
std::vector <rai::endpoint> list ();
|
||||
std::map <rai::endpoint, unsigned> list_version ();
|
||||
// A list of random peers with size the square root of total peer count
|
||||
std::vector <rai::endpoint> list_sqrt ();
|
||||
// Get the next peer for attempting bootstrap
|
||||
|
|
|
@ -1471,14 +1471,12 @@ void rai::rpc_handler::peers ()
|
|||
{
|
||||
boost::property_tree::ptree response_l;
|
||||
boost::property_tree::ptree peers_l;
|
||||
auto peers_list (node.peers.list());
|
||||
auto peers_list (node.peers.list_version ());
|
||||
for (auto i (peers_list.begin ()), n (peers_list.end ()); i != n; ++i)
|
||||
{
|
||||
boost::property_tree::ptree entry;
|
||||
std::stringstream text;
|
||||
text << *i;
|
||||
entry.put ("", text.str ());
|
||||
peers_l.push_back (std::make_pair ("", entry));
|
||||
text << i->first;
|
||||
peers_l.push_back(boost::property_tree::ptree::value_type(text.str (), std::to_string (i->second)));
|
||||
}
|
||||
response_l.add_child ("peers", peers_l);
|
||||
response (response_l);
|
||||
|
|
|
@ -1445,8 +1445,8 @@ ledger_refresh (new QPushButton ("Refresh")),
|
|||
ledger_back (new QPushButton ("Back")),
|
||||
peers_window (new QWidget),
|
||||
peers_layout (new QVBoxLayout),
|
||||
peers_model (new QStringListModel),
|
||||
peers_view (new QListView),
|
||||
peers_model (new QStandardItemModel),
|
||||
peers_view (new QTableView),
|
||||
bootstrap_label (new QLabel ("IPV6:port \"::ffff:192.168.0.1:7075\"")),
|
||||
bootstrap_line (new QLineEdit),
|
||||
peers_bootstrap (new QPushButton ("Initiate Bootstrap")),
|
||||
|
@ -1478,8 +1478,13 @@ wallet (wallet_a)
|
|||
ledger_layout->setContentsMargins (0, 0, 0, 0);
|
||||
ledger_window->setLayout (ledger_layout);
|
||||
|
||||
peers_model->setHorizontalHeaderItem (0, new QStandardItem ("IPv6 address:port"));
|
||||
peers_model->setHorizontalHeaderItem (1, new QStandardItem ("Net version"));
|
||||
peers_view->setEditTriggers (QAbstractItemView::NoEditTriggers);
|
||||
peers_view->verticalHeader ()->hide ();
|
||||
peers_view->setModel (peers_model);
|
||||
peers_view->setColumnWidth(0,220);
|
||||
peers_view->setSortingEnabled(true);
|
||||
peers_layout->addWidget (peers_view);
|
||||
peers_layout->addWidget (bootstrap_label);
|
||||
peers_layout->addWidget (bootstrap_line);
|
||||
|
@ -1607,22 +1612,20 @@ wallet (wallet_a)
|
|||
|
||||
void rai_qt::advanced_actions::refresh_peers ()
|
||||
{
|
||||
auto list (wallet.node.peers.list ());
|
||||
std::sort (list.begin (), list.end (), [] (rai::endpoint const & lhs, rai::endpoint const & rhs)
|
||||
peers_model->removeRows (0, peers_model->rowCount ());
|
||||
auto list (wallet.node.peers.list_version ());
|
||||
for (auto i (list.begin ()), n (list.end ()); i != n; ++i)
|
||||
{
|
||||
return lhs < rhs;
|
||||
});
|
||||
QStringList peers;
|
||||
for (auto i: list)
|
||||
{
|
||||
std::stringstream endpoint;
|
||||
endpoint << i.address ().to_string ();
|
||||
endpoint << ':';
|
||||
endpoint << i.port ();
|
||||
QString qendpoint (endpoint.str().c_str ());
|
||||
peers << qendpoint;
|
||||
}
|
||||
peers_model->setStringList (peers);
|
||||
std::stringstream endpoint;
|
||||
endpoint << i->first.address ().to_string ();
|
||||
endpoint << ':';
|
||||
endpoint << i->first.port ();
|
||||
QString qendpoint (endpoint.str().c_str ());
|
||||
QList <QStandardItem *> items;
|
||||
items.push_back (new QStandardItem (qendpoint));
|
||||
items.push_back (new QStandardItem (QString (std::to_string (i->second).c_str ())));
|
||||
peers_model->appendRow (items);
|
||||
}
|
||||
}
|
||||
|
||||
void rai_qt::advanced_actions::refresh_ledger ()
|
||||
|
|
|
@ -81,8 +81,8 @@ namespace rai_qt {
|
|||
|
||||
QWidget * peers_window;
|
||||
QVBoxLayout * peers_layout;
|
||||
QStringListModel * peers_model;
|
||||
QListView * peers_view;
|
||||
QStandardItemModel * peers_model;
|
||||
QTableView * peers_view;
|
||||
QLabel * bootstrap_label;
|
||||
QLineEdit * bootstrap_line;
|
||||
QPushButton * peers_bootstrap;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue