1. 17 Apr, 2012 1 commit
  2. 15 Apr, 2012 1 commit
  3. 11 Apr, 2012 1 commit
    • Pieter Wuille's avatar
      Fix build.h dependencies · fa977486
      Pieter Wuille authored
      For Qt builds, the build.h file is moved to build/build.h. For regular
      builds, it is moved to obj/build.h. This allows the Qt build to be done
      in a different directory than the source, and without interfering with
      other builds.
      fa977486
  4. 10 Apr, 2012 1 commit
    • Pieter Wuille's avatar
      Build identification strings · 8b1f2f2b
      Pieter Wuille authored
      All client version information is moved to version.cpp, which optionally
      (-DHAVE_BUILD_INFO) includes build.h. build.h is automatically generated
      on supporting platforms via contrib/genbuild.sh, using git describe.
      
      The git export-subst attribute is used to put the commit id statically
      in version.cpp inside generated archives, and this value is used if no
      build.h is present.
      
      The gitian descriptors are modified to use git archive instead of a
      copy, to create the src/ directory in the output. This way,
      src/src/version.cpp will contain the static commit id. To prevent
      gitian builds from getting the "-dirty" marker in their git-describe
      generated identifiers, no touching of files or running sed on the
      makefile is performed anymore. This does not seem to influence
      determinism.
      8b1f2f2b
  5. 05 Apr, 2012 1 commit
  6. 04 Apr, 2012 1 commit
  7. 20 Mar, 2012 1 commit
  8. 24 Feb, 2012 1 commit
    • Pieter Wuille's avatar
      CAddrMan: stochastic address manager · a0ad4640
      Pieter Wuille authored
      Design goals:
       * Only keep a limited number of addresses around, so that addr.dat does not grow without bound.
       * Keep the address tables in-memory, and occasionally write the table to addr.dat.
       * Make sure no (localized) attacker can fill the entire table with his nodes/addresses.
      
      See comments in addrman.h for more detailed information.
      a0ad4640
  9. 15 Feb, 2012 1 commit
  10. 23 Jan, 2012 2 commits
  11. 13 Jan, 2012 1 commit
    • Gavin Andresen's avatar
      Compile with extra warnings turned on. And more makefile/code tidying up. · b8f7f6a8
      Gavin Andresen authored
      This turns on most gcc warnings, and removes some unused variables and other code that triggers warnings.
      Exceptions are:
       -Wno-sign-compare : triggered by lots of comparisons of signed integer to foo.size(), which is unsigned.
       -Wno-char-subscripts : triggered by the convert-to-hex functions (I may fix this in a future commit).
      b8f7f6a8
  12. 12 Jan, 2012 1 commit
  13. 06 Jan, 2012 1 commit
    • Pieter Wuille's avatar
      Network stack refactor · 51c666c0
      Pieter Wuille authored
      This introduces CNetAddr and CService, respectively wrapping an
      (IPv6) IP address and an IP+port combination. This functionality used
      to be part of CAddress, which also contains network flags and
      connection attempt information. These extra fields are however not
      always necessary.
      
      These classes, along with logic for creating connections and doing
      name lookups, are moved to netbase.{h,cpp}, which does not depend on
      headers.h.
      
      Furthermore, CNetAddr is mostly IPv6-ready, though IPv6
      functionality is not yet enabled for the application itself.
      51c666c0
  14. 19 Dec, 2011 1 commit
  15. 17 Dec, 2011 2 commits
    • Pieter Wuille's avatar
      Key import and export · d04afb39
      Pieter Wuille authored
      Introduces two new RPC calls:
      * dumpprivkey: retrieve the private key corresponding to an address
      * importprivkey: add a private key to your wallet
      
      The private key format is analoguous to the address format. It is
      a 51-character base58-encoded string, that includes a version number
      and a checksum.
      
      Includes patch by mhanne:
      * add optional account parameter for importprivkey, if omitted use default
      d04afb39
    • Pieter Wuille's avatar
      Add GetSecret() and GetKeys() to CKeyStore · 3bf50ee4
      Pieter Wuille authored
      3bf50ee4
  16. 01 Dec, 2011 1 commit
  17. 17 Oct, 2011 1 commit
  18. 10 Oct, 2011 2 commits
  19. 09 Oct, 2011 1 commit
  20. 05 Oct, 2011 1 commit
  21. 30 Sep, 2011 1 commit
  22. 26 Sep, 2011 2 commits
  23. 18 Sep, 2011 1 commit
  24. 12 Sep, 2011 1 commit
  25. 26 Aug, 2011 1 commit
  26. 19 Aug, 2011 2 commits
  27. 16 Aug, 2011 1 commit
  28. 08 Aug, 2011 1 commit
    • Vegard Nossum's avatar
      Fix testing setup · e707d29d
      Vegard Nossum authored
      There were some problems with the existing testing setup:
      
       - Makefile rules for test-file compilation used CFLAGS instead of
         CXXFLAGS in makefile.unix
      e707d29d
  29. 13 Jul, 2011 1 commit
    • Matt Corallo's avatar
      Add wallet privkey encryption. · 4e87d341
      Matt Corallo authored
      This commit adds support for ckeys, or enCrypted private keys, to the wallet.
      All keys are stored in memory in their encrypted form and thus the passphrase
      is required from the user to spend coins, or to create new addresses.
      
      Keys are encrypted with AES-256-CBC using OpenSSL's EVP library. The key is
      calculated via EVP_BytesToKey using SHA512 with (by default) 25000 rounds and
      a random salt.
      
      By default, the user's wallet remains unencrypted until they call the RPC
      command encryptwallet <passphrase> or, from the GUI menu, Options->
      Encrypt Wallet.
      
      When the user is attempting to call RPC functions which require the password
      to unlock the wallet, an error will be returned unless they call
      walletpassphrase <passphrase> <time to keep key in memory> first.
      
      A keypoolrefill command has been added which tops up the users keypool
      (requiring the passphrase via walletpassphrase first).
      keypoolsize has been added to the output of getinfo to show the user the
      number of keys left before they need to specify their passphrase (and call
      keypoolrefill).
      
      Note that walletpassphrase will automatically fill keypool in a separate
      thread which it spawns when the passphrase is set. This could cause some
      delays in other threads waiting for locks on the wallet passphrase, including
      one which could cause the passphrase to be stored longer than expected,
      however it will not allow the passphrase to be used longer than expected as
      ThreadCleanWalletPassphrase will attempt to get a lock on the key as soon
      as the specified lock time has arrived.
      
      When the keypool runs out (and wallet is locked) GetOrReuseKeyFromPool
      returns vchDefaultKey, meaning miners may start to generate many blocks to
      vchDefaultKey instead of a new key each time.
      
      A walletpassphrasechange <oldpassphrase> <newpassphrase> has been added to
      allow the user to change their password via RPC.
      
      Whenever keying material (unencrypted private keys, the user's passphrase,
      the wallet's AES key) is stored unencrypted in memory, any reasonable attempt
      is made to mlock/VirtualLock that memory before storing the keying material.
      This is not true in several (commented) cases where mlock/VirtualLocking the
      memory is not possible.
      
      Although encryption of private keys in memory can be very useful on desktop
      systems (as some small amount of protection against stupid viruses), on an
      RPC server, the password is entered fairly insecurely. Thus, the only main
      advantage encryption has for RPC servers is for RPC servers that do not spend
      coins, except in rare cases, eg. a webserver of a merchant which only receives
      payment except for cases of manual intervention.
      
      Thanks to jgarzik for the original patch and sipa, gmaxwell and many others
      for all their input.
      
      Conflicts:
      
      	src/wallet.cpp
      4e87d341
  30. 05 Jul, 2011 1 commit
  31. 01 Jul, 2011 1 commit
  32. 27 Jun, 2011 1 commit
  33. 15 Jun, 2011 1 commit
    • Pieter Wuille's avatar
      move wallet code to separate file · e89b9f6a
      Pieter Wuille authored
      This introduces two new source files, keystore.cpp and wallet.cpp with
      corresponding headers. Code is moved from main and db, in a preparation
      for a follow-up commit which introduces the classes CWallet and CKeyStore.
      e89b9f6a
  34. 23 Apr, 2011 1 commit
    • Jaromil's avatar
      directory re-organization (keeps the old build system) · 84c3fb07
      Jaromil authored
      there is no internal modification of any file in this commit
      
      files are moved into directories according to established standards in
      sourcecode distribution; these directories contain:
      
       src - Files that are used in constructing the executable binaries,
             but are not installed.
      
       doc - Files in HTML and text format that document usage, quirks of
             the implementation, and contributor checklists.
      
       locale - Files that contain human language translation of strings
                used in the program
      
       contrib - Files contributed from distributions or other third party
       	   implementing scripts and auxiliary programs
      84c3fb07
  35. 22 Apr, 2011 1 commit