Example #1
0
    def launchBitcoindAndGuardian(self):

        pargs = [self.executable]

        if USE_TESTNET:
            pargs.append('-testnet')
        elif USE_REGTEST:
            pargs.append('-regtest')

        pargs.append('-datadir=%s' % self.satoshiHome)

        try:
            # Don't want some strange error in this size-check to abort loading
            blocksdir = os.path.join(self.satoshiHome, 'blocks')
            sz = long(0)
            if os.path.exists(blocksdir):
                for fn in os.listdir(blocksdir):
                    fnpath = os.path.join(blocksdir, fn)
                    sz += long(os.path.getsize(fnpath))

            if sz < 5 * GIGABYTE:
                if SystemSpecs.Memory > 9.0:
                    pargs.append('-dbcache=2000')
                elif SystemSpecs.Memory > 5.0:
                    pargs.append('-dbcache=1000')
                elif SystemSpecs.Memory > 3.0:
                    pargs.append('-dbcache=500')
        except:
            LOGEXCEPT('Failed size check of blocks directory')

        kargs = {}
        if OS_WINDOWS:
            import win32process
            kargs['shell'] = True
            kargs['creationflags'] = win32process.CREATE_NO_WINDOW

        # Startup bitcoind and get its process ID (along with our own)
        argStr = " ".join(astr for astr in pargs)
        LOGWARN('Spawning bitcoind with command: ' + argStr)
        self.bitcoind = launchProcess(pargs, **kargs)

        self.btcdpid = self.bitcoind.pid
        self.selfpid = os.getpid()

        LOGINFO('PID of bitcoind: %d', self.btcdpid)
        LOGINFO('PID of armory:   %d', self.selfpid)

        # Startup guardian process -- it will watch Armory's PID
        gpath = self.getGuardianPath()
        pargs = [gpath, str(self.selfpid), str(self.btcdpid)]
        if not OS_WINDOWS:
            pargs.insert(0, 'python')
        launchProcess(pargs, **kargs)
Example #2
0
   def launchBitcoindAndGuardian(self):

      pargs = [self.executable]

      if USE_TESTNET:
         pargs.append('-testnet')
      elif USE_REGTEST:
         pargs.append('-regtest')

      pargs.append('-datadir=%s' % self.satoshiHome)

      try:
         # Don't want some strange error in this size-check to abort loading
         blocksdir = os.path.join(self.satoshiHome, 'blocks')
         sz = long(0)
         if os.path.exists(blocksdir):
            for fn in os.listdir(blocksdir):
               fnpath = os.path.join(blocksdir, fn)
               sz += long(os.path.getsize(fnpath))

         if sz < 5*GIGABYTE:
            if SystemSpecs.Memory>9.0:
               pargs.append('-dbcache=2000')
            elif SystemSpecs.Memory>5.0:
               pargs.append('-dbcache=1000')
            elif SystemSpecs.Memory>3.0:
               pargs.append('-dbcache=500')
      except:
         LOGEXCEPT('Failed size check of blocks directory')

      kargs = {}
      if OS_WINDOWS:
         import win32process
         kargs['shell'] = True
         kargs['creationflags'] = win32process.CREATE_NO_WINDOW

      # Startup bitcoind and get its process ID (along with our own)
      argStr = " ".join(astr for astr in pargs)
      LOGWARN('Spawning bitcoind with command: ' + argStr)      
      self.bitcoind = launchProcess(pargs, **kargs)

      self.btcdpid  = self.bitcoind.pid
      self.selfpid  = os.getpid()

      LOGINFO('PID of bitcoind: %d',  self.btcdpid)
      LOGINFO('PID of armory:   %d',  self.selfpid)

      # Startup guardian process -- it will watch Armory's PID
      gpath = self.getGuardianPath()
      pargs = [gpath, str(self.selfpid), str(self.btcdpid)]
      if not OS_WINDOWS:
         pargs.insert(0, 'python')
      launchProcess(pargs, **kargs)
Example #3
0
    def spawnDB(self, dataDir, dbDir):
        pargs = [self.dbExecutable]

        pargs.append('--db-type="' + ARMORY_DB_TYPE + '"')
        pargs.append('--cookie')

        if USE_TESTNET:
            pargs.append('--testnet')
        if USE_REGTEST:
            pargs.append('--regtest')

        haveSatoshiDir = False
        blocksdir = self.satoshiHome
        if os.path.exists(blocksdir):
            haveSatoshiDir = True
        else:
            blocksdir = os.path.join(self.satoshiHome, 'blocks')
            if os.path.exists(blocksdir):
                haveSatoshiDir = True

        if haveSatoshiDir:
            pargs.append('--satoshi-datadir="' + blocksdir + '"')

        pargs.append('--datadir="' + dataDir + '"')
        pargs.append('--dbdir="' + dbDir + '"')

        if CLI_OPTIONS.rebuild:
            pargs.append('--rebuild')
        elif CLI_OPTIONS.rescan:
            pargs.append('--rescan')
        elif CLI_OPTIONS.rescanBalance:
            pargs.append('--rescanSSH')

        if CLI_OPTIONS.clearMempool:
            pargs.append('--clear_mempool')

        if ARMORY_RAM_USAGE != -1:
            pargs.append('--ram-usage=' + ARMORY_RAM_USAGE)
        if ARMORY_THREAD_COUNT != -1:
            pargs.append('--thread-count=' + ARMORY_THREAD_COUNT)

        kargs = {}
        if OS_WINDOWS:
            import win32process
            kargs['shell'] = True
            kargs['creationflags'] = win32process.CREATE_NO_WINDOW

        argStr = " ".join(astr for astr in pargs)
        LOGWARN('Spawning DB with command:' + argStr)

        launchProcess(pargs, **kargs)
Example #4
0
   def launchBitcoindAndGuardian(self):

      pargs = [self.executable]

      if USE_TESTNET:
         testhome = self.satoshiHome[:]
         if self.satoshiHome.endswith('/testnet3/'):
            pargs.append('-datadir=%s' % self.satoshiHome[:-10])
         elif self.satoshiHome.endswith('/testnet3'):
            pargs.append('-datadir=%s' % self.satoshiHome[:-9])
         pargs.append('-testnet')
      else:
         pargs.append('-datadir=%s' % self.satoshiHome)
      try:
         # Don't want some strange error in this size-check to abort loading
         blocksdir = os.path.join(self.satoshiHome, 'blocks')
         sz = long(0)
         if os.path.exists(blocksdir):
            for fn in os.listdir(blocksdir):
               fnpath = os.path.join(blocksdir, fn)
               sz += long(os.path.getsize(fnpath))

         if sz < 5*GIGABYTE:
            if SystemSpecs.Memory>9.0:
               pargs.append('-dbcache=2000')
            elif SystemSpecs.Memory>5.0:
               pargs.append('-dbcache=1000')
            elif SystemSpecs.Memory>3.0:
               pargs.append('-dbcache=500')
      except:
         LOGEXCEPT('Failed size check of blocks directory')


      # Startup bitcoind and get its process ID (along with our own)
      self.bitcoind = launchProcess(pargs)

      self.btcdpid  = self.bitcoind.pid
      self.selfpid  = os.getpid()

      LOGINFO('PID of bitcoind: %d',  self.btcdpid)
      LOGINFO('PID of armory:   %d',  self.selfpid)

      # Startup guardian process -- it will watch Armory's PID
      gpath = self.getGuardianPath()
      pargs = [gpath, str(self.selfpid), str(self.btcdpid)]
      if not OS_WINDOWS:
         pargs.insert(0, 'python')
      launchProcess(pargs)
Example #5
0
   def launchBitcoindAndGuardian(self):

      pargs = [self.executable]

      if USE_TESTNET:
         testhome = self.satoshiHome[:]
         if self.satoshiHome.endswith('/testnet3/'):
            pargs.append('-datadir=%s' % self.satoshiHome[:-10])
         elif self.satoshiHome.endswith('/testnet3'):
            pargs.append('-datadir=%s' % self.satoshiHome[:-9])
         pargs.append('-testnet')
      else:
         pargs.append('-datadir=%s' % self.satoshiHome)
      try:
         # Don't want some strange error in this size-check to abort loading
         blocksdir = os.path.join(self.satoshiHome, 'blocks')
         sz = long(0)
         if os.path.exists(blocksdir):
            for fn in os.listdir(blocksdir):
               fnpath = os.path.join(blocksdir, fn)
               sz += long(os.path.getsize(fnpath))

         if sz < 5*GIGABYTE:
            if SystemSpecs.Memory>9.0:
               pargs.append('-dbcache=2000')
            elif SystemSpecs.Memory>5.0:
               pargs.append('-dbcache=1000')
            elif SystemSpecs.Memory>3.0:
               pargs.append('-dbcache=500')
      except:
         LOGEXCEPT('Failed size check of blocks directory')


      # Startup bitcoind and get its process ID (along with our own)
      self.bitcoind = launchProcess(pargs)

      self.btcdpid  = self.bitcoind.pid
      self.selfpid  = os.getpid()

      LOGINFO('PID of peercoind: %d',  self.btcdpid)
      LOGINFO('PID of armory:   %d',  self.selfpid)

      # Startup guardian process -- it will watch Armory's PID
      gpath = self.getGuardianPath()
      pargs = [gpath, str(self.selfpid), str(self.btcdpid)]
      if not OS_WINDOWS:
         pargs.insert(0, 'python')
      launchProcess(pargs)
Example #6
0
   def spawnDB(self, dataDir, dbDir):
      pargs = [self.dbExecutable]

      pargs.append('--db-type="' + ARMORY_DB_TYPE + '"')
      pargs.append('--cookie')

      if USE_TESTNET:
         pargs.append('--testnet')
      if USE_REGTEST:
         pargs.append('--regtest');

      haveSatoshiDir = False
      blocksdir = os.path.join(self.satoshiHome, 'blocks')
      if os.path.exists(blocksdir):   
         pargs.append('--satoshi-datadir="' + blocksdir + '"')
         
      pargs.append('--datadir="' + dataDir + '"')
      pargs.append('--dbdir="' + dbDir + '"')

      if CLI_OPTIONS.rebuild:
         pargs.append('--rebuild')
      elif CLI_OPTIONS.rescan:
         pargs.append('--rescan')
      elif CLI_OPTIONS.rescanBalance:
         pargs.append('--rescanSSH')
         
      if CLI_OPTIONS.clearMempool:
         pargs.append('--clear_mempool')

      if ARMORY_RAM_USAGE != -1:
         pargs.append('--ram-usage=' + ARMORY_RAM_USAGE)
      if ARMORY_THREAD_COUNT != -1:
         pargs.append('--thread-count=' + ARMORY_THREAD_COUNT)

      kargs = {}
      if OS_WINDOWS:
         import win32process
         kargs['shell'] = True
         kargs['creationflags'] = win32process.CREATE_NO_WINDOW

      argStr = " ".join(astr for astr in pargs)
      LOGWARN('Spawning DB with command: ' + argStr)

      launchProcess(pargs, **kargs)
Example #7
0
   def spawnDB(self, dataDir, dbDir):
      pargs = [self.dbExecutable]

      pargs.append('--db-type="' + ARMORY_DB_TYPE + '"')

      if USE_TESTNET:
         pargs.append('--testnet')
      if USE_REGTEST:
         pargs.append('--regtest');

      blocksdir = os.path.join(self.satoshiHome, 'blocks')
      if not os.path.exists(blocksdir):
         raise self.BadPath, "Invalid blockdata path"

      randBase58 = SecureBinaryData().GenerateRandom(32).toBinStr()
      spawnId = binary_to_base58(randBase58)

      pargs.append('--spawnId="' + spawnId + '"')
      pargs.append('--satoshi-datadir="' + blocksdir + '"')
      pargs.append('--datadir="' + dataDir + '"')
      pargs.append('--dbdir="' + dbDir + '"')

      if CLI_OPTIONS.rebuild:
         pargs.append('--rebuild')
      elif CLI_OPTIONS.rescan:
         pargs.append('--rescan')
      elif CLI_OPTIONS.rescanBalance:
         pargs.append('--rescanSSH')

      if ARMORY_RAM_USAGE != -1:
         pargs.append('--ram-usage=' + ARMORY_RAM_USAGE)
      if ARMORY_THREAD_COUNT != -1:
         pargs.append('--thread-count=' + ARMORY_THREAD_COUNT)

      kargs = {}
      if OS_WINDOWS:
         #import win32process
         kargs['shell'] = True
         #kargs['creationflags'] = win32process.CREATE_NO_WINDOW

      launchProcess(pargs, **kargs)

      return spawnId