1. 16 Jul, 2018 1 commit
    • Jason Yellick's avatar
      FAB-10292 Update protobuf to v1.1.0 · 03104e71
      Jason Yellick authored
      
      
      Protobuf was slated to be updated already, but there is a long list of
      incompatibilities with the current source tree.
      
      Thi CR updates protobuf to v1.1.0, and addresses those
      incompatibilities.  Most of the changes are quite rote and fall into one
      of three buckets.
      
      1. Code which uses non-keyed field initialization.  (ie, initializing a
      struct like MyStruct{value1, value2, value3}).  The newer generated
      protos produces structs which have additional non-field members.
      Structs should always be initialized with named fields, regardless of
      whether they are protos or not.
      
      2. Code which assumes that reflect.DeepEqual between two protos with the
      same fields will return true.  This has never been the case, especially
      when considering protos with slice or map fields, but with proto v1.1.0
      with the addition of caching and other members to the proto structs, it
      is even less true.  The correct call is proto.Equal.
      
      3. Code which assumes that proto fails on bad inputs -- the proto spec
      has always stated that failure _may_ occur, not that it must.  Certain
      code would attempt to determine proto message type based on failure to
      unmarshal, which was unsafe in v1.0.0, but is even more likely to cause
      problems in v1.1.0.
      
      4. On average, half of gossip identity digests aren't valid UTF8 strings,
         and proto v1.1.0 now enforces UTF8 validity checks for string fields.
         Therefore, the field was converted to bytes.
      
      Change-Id: I74cc037903137705dbe3f4e27e34d1307596db3b
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      03104e71
  2. 04 Jun, 2018 1 commit
  3. 21 May, 2018 1 commit
    • Chris Elder's avatar
      [FAB-7779] CouchDB indexes for private data · 9a3b1811
      Chris Elder authored
      
      
      Any couchdb indexes defined for a chaincode will be deployed in
      the chaincode state database.  Indexes for collections of private
      data should be applied in the chaincode's collection state database
      rather than in the chaincode state database.
      
      Added support for HandleChaincodeDeploy event to common_storage_db.  This
      will now process the event from chain code deploy.  The move was necessary
      for handling the private data namespace mapping.
      
      Added new function to statecouchdb for processing index creation.
      
      Added new interface to statedb for IndexCapable.  This allows the
      common_storage_db to detect that the state database will accept index
      creation events.
      
      Updated index validation to allow for indexes under collections directories.
      
      Change-Id: Icfda923c584d953ce5886023f7411bbddb59d595
      Signed-off-by: default avatarChris Elder <chris.elder@us.ibm.com>
      9a3b1811
  4. 12 Sep, 2017 1 commit
  5. 03 Feb, 2017 1 commit
    • manish's avatar
      Move Blockstorage code under /fabric/common package · 2a16532c
      manish authored
      https://jira.hyperledger.org/browse/FAB-2022
      
      
      
      This changes introduced by this CR
      - Moves the block storage code from package
      core/ledger/blkstorage to common/ledger/blkstorage
      
      - Splits the ledger_interface.go so as to move common interfaces
      and data type to common/ledger package
      
      - Moves some of the util functions to common/ledger package
      
      - Moves core/ledger/ordererledger package to orderer/ledger/fsledger
      orderer folks can futher rename/refactor this as seems suitable to them
      
      Change-Id: I759e16f00dc2ec9bb62196121083cf48eae76948
      Signed-off-by: default avatarmanish <manish.sethi@gmail.com>
      2a16532c
  6. 11 Jan, 2017 1 commit
    • Jason Yellick's avatar
      Move core/util to common/util · 289b1a29
      Jason Yellick authored
      
      
      As a matter of policy, the only imports a package should have outside of
      its base dir are protos/ vendor/ and common/.  The core/util package was
      referenced all over the code, so moving it to common seems like the best
      option.
      
      Change-Id: Ic7d797be6a1b44634480a361ae7469b794685762
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      289b1a29
  7. 30 Nov, 2016 1 commit
    • Mari Wade's avatar
      FAB-1087 Add config option in core.yaml for history · 37314475
      Mari Wade authored
      
      
      Add config option in core.yaml for history database
      to store the transaction history.  The history database
      will be a queryable database such as CouchDB.
      
      The default will be false.  If set to false, the transaction
      history will not be persisted in the history database.
      
      Move the ledger config directory up one level to ledger
      to be the config for state and history databases as well
      as any other ledger functionality that needs a config option.
      
      Change-Id: If4607047082b686dd903d8b3805362d0c05e1c64
      Signed-off-by: default avatarMari Wade <mariwade@us.ibm.com>
      37314475
  8. 14 Nov, 2016 1 commit
    • Chris Elder's avatar
      FAB-827 Add config option in core.yaml for couchDB · ea1c53cd
      Chris Elder authored
      
      
      Add config option in core.yaml to switch state database from goleveldb to CouchDB
      
      Added the following to core.yaml
      
          # stateDatabase - options are "goleveldb", "CouchDB"
          # goleveldb - default state database stored in goleveldb.
          # CouchDB - store state database in CouchDB
          stateDatabase: goleveldb
          couchDBConfig:
             couchDBAddress: 127.0.0.1:5984
             username:
             password:
      
      Changes were also made to couchdb_txmgr to support the config option.
      
      Changes were made to couchdb_test.go and marble_example.go to support the
      config option in core.yaml and environment variables.
      
      Marbles example can now be run with couchDb with the following command:
      
      CORE_LEDGER_STATE_STATEDATABASE="CouchDB" go run marble_example.go
      
      Adding a declaration for CORE_LEDGER_STATE_STATEDATABASE will work for peer,
      couchdb_test and marbles example.
      
      Change-Id: If02ac4f7c1c234d5f4c869875f3c331e35c9a066
      Signed-off-by: default avatarChris Elder <chris.elder@us.ibm.com>
      ea1c53cd
  9. 28 Oct, 2016 1 commit
  10. 26 Oct, 2016 1 commit
  11. 08 Aug, 2016 1 commit
    • Gabor Hosszu's avatar
      Use SHA256 TXID instead of UUID · c950903f
      Gabor Hosszu authored
      
      
      This squashed changeset does the following:
       - It renames UUID to TXID in the code (Go/Java), in tests,
         in proto files, in all chaincode related files
       - It uses all the arguments of the chaincode to
         generate the TXID
      
      Change-Id: Iae6f1fb45c12c2652d9ad18451e75ea1f91fe9a3
      Signed-off-by: default avatarGabor Hosszu <gabor@digitalasset.com>
      c950903f
  12. 26 Jul, 2016 1 commit