예제 #1
0
    def __init__(self, runmode=TESTNET, seeds=[]):
        self.log = stdout_logger(level=logging.ERROR)
        self.runmode = runmode
        nodeparams = NodeParams(runmode=runmode,
                                port=BITCOIN_PORT[runmode],
                                version=60000,
                                enabledservices=SERVICES_NODE_NETWORK,
                                nonce=random.randint(0, 2**64),
                                sub_version_num="/bitcrawler:0.1/")
        self.node = BasicNode(lambda: 0, nodeparams, self.log)
        self.bootstrapper = Bootstrapper(runmode, self.log)

        self.node.subscribe(VersionExchangeService.EVT_VERSION_EXCHANGED,
                            self.on_version_exchanged)
        self.node.subscribe(Node.EVT_DISCONNECTED, self.on_disconnected)
        self.node.subscribe((VersionExchangeService.EVT_MESSAGE, MSG_ADDR),
                            self.on_addr)
        self.bootstrapper.subscribe(Bootstrapper.EVT_FOUND_PEER,
                                    self.on_found_peer)

        for sockaddr in seeds:
            self.addr_pool.addpeer(sockaddr)

        self.new_addrs = set()
        self.processing_addrs = set()
        self.success_addrs = set()
        self.failed_addrs = set()
        reactor.schedule_each(2, self.print_status)
예제 #2
0
파일: dns.py 프로젝트: wizardofozzie/coinpy
    def __init__(self, runmode, log):
        super(DnsBoostrapper, self).__init__()
        self.log = log
        self.runmode = runmode
        nodeparams = NodeParams(runmode=runmode,
                                port=9000,
                                version=60000,
                                enabledservices=SERVICES_NONE,
                                nonce=random.randint(0, 2**64),
                                sub_version_num="/coinpy-boostrap:0.1/")
        self.node = BasicNode(lambda: 0, nodeparams, self.log)

        self.node.subscribe(VersionExchangeService.EVT_VERSION_EXCHANGED,
                            self.on_version_exchanged)
        self.node.subscribe((VersionExchangeService.EVT_MESSAGE, MSG_ADDR),
                            self.on_addr)

        self.bootstrap_peers = set()
        self.peers = set()