@ -333,3 +333,54 @@ Value getnettotals(const Array& params, bool fHelp)
@@ -333,3 +333,54 @@ Value getnettotals(const Array& params, bool fHelp)
obj . push_back ( Pair ( " timemillis " , static_cast < boost : : int64_t > ( GetTimeMillis ( ) ) ) ) ;
return obj ;
}
Value getnetworkinfo ( const Array & params , bool fHelp )
{
if ( fHelp | | params . size ( ) ! = 0 )
throw runtime_error (
" getnetworkinfo \n "
" Returns an object containing various state info regarding P2P networking. \n "
" \n Result: \n "
" { \n "
" \" version \" : xxxxx, (numeric) the server version \n "
" \" protocolversion \" : xxxxx, (numeric) the protocol version \n "
" \" timeoffset \" : xxxxx, (numeric) the time offset \n "
" \" connections \" : xxxxx, (numeric) the number of connections \n "
" \" proxy \" : \" host:port \" , (string, optional) the proxy used by the server \n "
" \" relayfee \" : x.xxxx, (numeric) minimum relay fee for non-free transactions in btc/kb \n "
" \" localaddresses \" : [, (array) list of local addresses \n "
" \" address \" : \" xxxx \" , (string) network address \n "
" \" port \" : xxx, (numeric) network port \n "
" \" score \" : xxx (numeric) relative score \n "
" ] \n "
" } \n "
" \n Examples: \n "
+ HelpExampleCli ( " getnetworkinfo " , " " )
+ HelpExampleRpc ( " getnetworkinfo " , " " )
) ;
proxyType proxy ;
GetProxy ( NET_IPV4 , proxy ) ;
Object obj ;
obj . push_back ( Pair ( " version " , ( int ) CLIENT_VERSION ) ) ;
obj . push_back ( Pair ( " protocolversion " , ( int ) PROTOCOL_VERSION ) ) ;
obj . push_back ( Pair ( " timeoffset " , ( boost : : int64_t ) GetTimeOffset ( ) ) ) ;
obj . push_back ( Pair ( " connections " , ( int ) vNodes . size ( ) ) ) ;
obj . push_back ( Pair ( " proxy " , ( proxy . first . IsValid ( ) ? proxy . first . ToStringIPPort ( ) : string ( ) ) ) ) ;
obj . push_back ( Pair ( " relayfee " , ValueFromAmount ( CTransaction : : nMinRelayTxFee ) ) ) ;
Array localAddresses ;
{
LOCK ( cs_mapLocalHost ) ;
BOOST_FOREACH ( const PAIRTYPE ( CNetAddr , LocalServiceInfo ) & item , mapLocalHost )
{
Object rec ;
rec . push_back ( Pair ( " address " , item . first . ToString ( ) ) ) ;
rec . push_back ( Pair ( " port " , item . second . nPort ) ) ;
rec . push_back ( Pair ( " score " , item . second . nScore ) ) ;
localAddresses . push_back ( rec ) ;
}
}
obj . push_back ( Pair ( " localaddresses " , localAddresses ) ) ;
return obj ;
}