Add new RPC method: add_peer
This commit is contained in:
parent
9c6d2f5764
commit
ead68ebe34
@ -156,6 +156,17 @@ The following commands are available:
|
|||||||
Currently peer data is obtained via a peer discovery protocol; it
|
Currently peer data is obtained via a peer discovery protocol; it
|
||||||
used to be taken from IRC.
|
used to be taken from IRC.
|
||||||
|
|
||||||
|
* **add_peer**
|
||||||
|
|
||||||
|
Add a peer to the peers list. ElectrumX will schdule an immediate
|
||||||
|
connection attempt. This command takes a single argument: the
|
||||||
|
peer's "real name" as it would advertise itself on IRC.
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
$ ./electrumx_rpc.py add_peer "ecdsa.net v1.0 s110 t"
|
||||||
|
"peer 'ecdsa.net v1.0 s110 t' added"
|
||||||
|
|
||||||
* **daemon_url**
|
* **daemon_url**
|
||||||
|
|
||||||
This command takes an optional argument that is interpreted
|
This command takes an optional argument that is interpreted
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import pylru
|
|||||||
|
|
||||||
from lib.jsonrpc import JSONRPC, JSONSessionBase, RPCError
|
from lib.jsonrpc import JSONRPC, JSONSessionBase, RPCError
|
||||||
from lib.hash import double_sha256, hash_to_str, hex_str_to_hash
|
from lib.hash import double_sha256, hash_to_str, hex_str_to_hash
|
||||||
|
from lib.peer import Peer
|
||||||
import lib.util as util
|
import lib.util as util
|
||||||
from server.block_processor import BlockProcessor
|
from server.block_processor import BlockProcessor
|
||||||
from server.daemon import Daemon, DaemonError
|
from server.daemon import Daemon, DaemonError
|
||||||
@ -73,7 +74,7 @@ class Controller(util.LoggedClass):
|
|||||||
env.max_send = max(350000, env.max_send)
|
env.max_send = max(350000, env.max_send)
|
||||||
self.setup_bands()
|
self.setup_bands()
|
||||||
# Set up the RPC request handlers
|
# Set up the RPC request handlers
|
||||||
cmds = ('daemon_url disconnect getinfo groups log peers reorg '
|
cmds = ('add_peer daemon_url disconnect getinfo groups log peers reorg '
|
||||||
'sessions stop'.split())
|
'sessions stop'.split())
|
||||||
self.rpc_handlers = {cmd: getattr(self, 'rpc_' + cmd) for cmd in cmds}
|
self.rpc_handlers = {cmd: getattr(self, 'rpc_' + cmd) for cmd in cmds}
|
||||||
# Set up the ElectrumX request handlers
|
# Set up the ElectrumX request handlers
|
||||||
@ -579,6 +580,15 @@ class Controller(util.LoggedClass):
|
|||||||
|
|
||||||
# Local RPC command handlers
|
# Local RPC command handlers
|
||||||
|
|
||||||
|
def rpc_add_peer(self, real_name):
|
||||||
|
'''Add a peer.
|
||||||
|
|
||||||
|
real_name: a real name, as would appear on IRC
|
||||||
|
'''
|
||||||
|
peer = Peer.from_real_name(real_name, 'RPC')
|
||||||
|
self.peer_mgr.add_peers([peer])
|
||||||
|
return "peer '{}' added".format(real_name)
|
||||||
|
|
||||||
def rpc_disconnect(self, session_ids):
|
def rpc_disconnect(self, session_ids):
|
||||||
'''Disconnect sesssions.
|
'''Disconnect sesssions.
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user