From d6bf8439b5089335877e19df773fcf037d80c3a9 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Fri, 31 Jan 2014 09:37:36 +0000 Subject: [PATCH] Rename of Main - MainWin. --- TODO | 10 ++++++---- alephzero/{Main.cpp => MainWin.cpp} | 16 ++++++++++------ alephzero/{Main.h => MainWin.h} | 0 alephzero/alephzero.pro | 7 ++++--- alephzero/main.cpp | 2 +- libethereum/PeerNetwork.cpp | 5 ++++- libethereum/PeerNetwork.h | 2 ++ 7 files changed, 27 insertions(+), 15 deletions(-) rename alephzero/{Main.cpp => MainWin.cpp} (93%) rename alephzero/{Main.h => MainWin.h} (100%) diff --git a/TODO b/TODO index 10852d881..25745068e 100644 --- a/TODO +++ b/TODO @@ -12,10 +12,6 @@ Better handling of corrupt blocks. Network: - Firewall-busting PeerConnections. UPnP? - Crypto on network. TLS? -- Respect idealPeerCount. -- Peer network traversal for peer discovery. -- Check peer utility (useful transactions & blocks passed) for when dismissing. -- Respect peer count & dismiss/collect/stop listening for peers as necessary. - Make work with IPv6 - Consider node addresses @@ -26,6 +22,12 @@ FOR ALPHA: Network: * Manage GetBlocks properly; should work for when > 256 blocks away. + - configurable (lower) mine times, configurable (reduced) max blocks to be sent then check. +* Kill peers when too many + - Respect idealPeerCount. + - Peer network traversal for peer discovery. + - Check peer utility (useful transactions & blocks passed) for when dismissing. + - Respect peer count & dismiss/collect/stop listening for peers as necessary. UI: * State panel shouldn't show pending (i.e. post-mined) transactions. diff --git a/alephzero/Main.cpp b/alephzero/MainWin.cpp similarity index 93% rename from alephzero/Main.cpp rename to alephzero/MainWin.cpp index e48e4ad2b..11d80efdb 100644 --- a/alephzero/Main.cpp +++ b/alephzero/MainWin.cpp @@ -2,7 +2,7 @@ #include #include #include -#include "Main.h" +#include "MainWin.h" #include "ui_Main.h" using namespace std; using namespace eth; @@ -26,7 +26,7 @@ Main::Main(QWidget *parent) : { m_servers = QString::fromUtf8(_r->readAll()).split("\n", QString::SkipEmptyParts); }); - QNetworkRequest r(QUrl("http://gavwood.com/servers.txt")); + QNetworkRequest r(QUrl("http://ethereum.org/servers.txt")); r.setHeader(QNetworkRequest::UserAgentHeader, "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1712.0 Safari/537.36"); m_webCtrl.get(r); srand(time(0)); @@ -131,10 +131,14 @@ void Main::on_connect_clicked() { if (!ui->net->isChecked()) ui->net->setChecked(true); - QString s = QInputDialog::getItem(this, "Connect to a Network Peer", "Enter a peer to which a connection may be made:", m_servers, rand() % m_servers.count(), true); - string host = s.section(":", 0, 0).toStdString(); - short port = s.section(":", 1).toInt(); - m_client.connect(host, port); + bool ok = false; + QString s = QInputDialog::getItem(this, "Connect to a Network Peer", "Enter a peer to which a connection may be made:", m_servers, m_servers.count() ? rand() % m_servers.count() : 0, true, &ok); + if (ok) + { + string host = s.section(":", 0, 0).toStdString(); + short port = s.section(":", 1).toInt(); + m_client.connect(host, port); + } } void Main::on_mine_toggled() diff --git a/alephzero/Main.h b/alephzero/MainWin.h similarity index 100% rename from alephzero/Main.h rename to alephzero/MainWin.h diff --git a/alephzero/alephzero.pro b/alephzero/alephzero.pro index 567004750..cff641b80 100644 --- a/alephzero/alephzero.pro +++ b/alephzero/alephzero.pro @@ -15,10 +15,11 @@ QMAKE_LIBDIR += ../../cpp-ethereum-build/libethereum ../../secp256k1 ../../crypt LIBS += -Wl,-rpath,../../cpp-ethereum-build/libethereum -Wl,-rpath,../../secp256k1 -Wl,-rpath,../../cryptopp562 -lethereum -lsecp256k1 -lleveldb -lcryptopp -lgmp -lboost_filesystem -lboost_system INCLUDEPATH = ../../secp256k1/include ../../cryptopp562 ../../cpp-ethereum -SOURCES += main.cpp\ - Main.cpp +SOURCES += main.cpp \ + MainWin.cpp -HEADERS += Main.h +HEADERS += \ + MainWin.h FORMS += Main.ui diff --git a/alephzero/main.cpp b/alephzero/main.cpp index af5cf26e1..ce37f9905 100644 --- a/alephzero/main.cpp +++ b/alephzero/main.cpp @@ -1,4 +1,4 @@ -#include "Main.h" +#include "MainWin.h" #include int main(int argc, char *argv[]) diff --git a/libethereum/PeerNetwork.cpp b/libethereum/PeerNetwork.cpp index ef0cf6617..cc82cf842 100644 --- a/libethereum/PeerNetwork.cpp +++ b/libethereum/PeerNetwork.cpp @@ -32,7 +32,8 @@ using namespace eth; PeerSession::PeerSession(PeerServer* _s, bi::tcp::socket _socket, uint _rNId): m_server(_s), m_socket(std::move(_socket)), - m_reqNetworkId(_rNId) + m_reqNetworkId(_rNId), + m_rating(0) { } @@ -139,6 +140,7 @@ bool PeerSession::interpret(RLP const& _r) break; case Transactions: cout << std::setw(2) << m_socket.native_handle() << " | Transactions (" << dec << (_r.itemCount() - 1) << " entries)" << endl; + m_rating += _r.itemCount() - 1; for (unsigned i = 1; i < _r.itemCount(); ++i) { m_server->m_incomingTransactions.push_back(_r[i].data().toBytes()); @@ -147,6 +149,7 @@ bool PeerSession::interpret(RLP const& _r) break; case Blocks: cout << std::setw(2) << m_socket.native_handle() << " | Blocks (" << dec << (_r.itemCount() - 1) << " entries)" << endl; + m_rating += _r.itemCount() - 1; for (unsigned i = 1; i < _r.itemCount(); ++i) { m_server->m_incomingBlocks.push_back(_r[i].data().toBytes()); diff --git a/libethereum/PeerNetwork.h b/libethereum/PeerNetwork.h index 8aa5bfacd..7abc9c096 100644 --- a/libethereum/PeerNetwork.h +++ b/libethereum/PeerNetwork.h @@ -101,6 +101,8 @@ private: std::chrono::steady_clock::time_point m_ping; + unsigned m_rating; + std::set m_knownBlocks; std::set m_knownTransactions; };