1. 04 Dec, 2016 1 commit
    • manish's avatar
      This commit changes the versioning scheme for the keys · 836fdc69
      manish authored
      The height based versioning scheme assigns a version to the key equal to the  height of the transaction that committed it last.
      The benefits include -
      1) We do not need to maintain delete markers for the deleted keys
      2) Makes recovery of state db easier, particularly for couchdb
      3) Enables efficient validation - (in future - does not require validating against latest state has potential for in-memory validation)
      4) Has potential for providing snapshot isolation across sharded data nodes in the future
      Change-Id: I5a079c9be5966c349b7bb6c8df6e1a45d9889f1f
      Signed-off-by: default avatarmanish <manish.sethi@gmail.com>
  2. 03 Dec, 2016 1 commit
    • Srinivasan Muralidharan's avatar
      FAB-1256 remove anchor of DefaultChain from peer · 718924ca
      Srinivasan Muralidharan authored
      DefaultChain was the chain that was holding together
      the flows through the fabric and was a place holder for
      full fledged chains implementation. We now remove that
         . force chainID to be passed through the system, top down
         . use the chainID as the ledgername (note the panic
           in GetLedger)
      Pending "join" support, the system still require a single
      ledger to be created but that is now created by specifying
      the chain at the top level (unit tests, CLI in "peer node start",
      Once "join" is added, this scaffolding can be removed from CLI
      (the chaincode unit tests will likely continue to use it) when
      the complete chain initialization will be "peer join" configuration
      Change-Id: Ie3b64db4b9030a4cb695fb3e1075822b55a129d1
      Signed-off-by: default avatarSrinivasan Muralidharan <muralisr@us.ibm.com>
  3. 02 Dec, 2016 8 commits
  4. 01 Dec, 2016 9 commits
  5. 30 Nov, 2016 19 commits
    • Gregory Haskins's avatar
      [BUILD] Make docker-image building more reliable · c242f619
      Gregory Haskins authored
      We need to create a tighter coupling between the build
      system and the resulting docker images to prevent
      make from over-optimizing steps away.
      Fixes FAB-1145
      Change-Id: I50c7cdf98e173c88ff6722d6c28aeade7395428e
      Signed-off-by: default avatarGreg Haskins <gregory.haskins@gmail.com>
    • Gregory Haskins's avatar
      [BUILD] Isolate docker instructions · c0bc7268
      Gregory Haskins authored
      Change-Id: Ice1bf6eaacdd038254b6749ab44dfba2fcc2222b
      Signed-off-by: default avatarGreg Haskins <gregory.haskins@gmail.com>
    • Gregory Haskins's avatar
      [BUILD] Unify docker environment · 5d07caa6
      Gregory Haskins authored
      Change-Id: I83b70af4143027b7e857869043b9bbe9a063f7a3
      Signed-off-by: default avatarGreg Haskins <gregory.haskins@gmail.com>
    • Gregory Haskins's avatar
      [BUILD] Minimize docker container sizes · b61723f9
      Gregory Haskins authored
      We use two techniques:
      1) the use of a minimal docker base (FROM scratch + busybox)
      2) the use of a static binary
       ... to create a minimally sized image for 'peer' and 'orderer'
      Before this patch, these containers are approximately 1.4GB.  After this
      patch, they are about 20MB-24MB.
      It isn't strictly necessary to include busybox.  The main benefit
      is achieved simply by eliminating external dependencies in the
      golang binary using -static and then getting rid of all the
      bloat in the baseimage via "FROM scratch".  However, in this mode
      the image is pathologically bare-boned.  For instance, the image has
      to be launched using the exec-form '["peer", "node", "start"]' since
      there is no shell interpreter available to do the more natural
      "CMD peer node start".  Further, any "docker exec" style debugging
      would be impossible.  It is often helpful to jump into a container
      and poke around with tools like ifconfig, ping, netstat, etc.
      Enter busybox: We can create a basic unix environment with only
      a 5MB payload.  This is impressive and is easily worth its weight
      in the image.
      However, the challenge isn't really justifying the utility of having
      busybox over saving 5MB as much as it is about how we will get it
      into the image.  If the world were a monochrome x86_64, we could simply
      s/FROM scratch/FROM busybox and be done.  However, we have to consider
      other multi $arch.  To support this, we forgo the temptation to use
      FROM busybox and build busybox from source.  On my 2011 Macbook Pro,
      this adds about 5 minutes to the build, at least on the first build.
      Subsequent builds utilize the cache in ./build and thus are no-ops.
      This is _just_ fast enough that I am not embarrassed to propose it
      for consideration.  However, if this is perceived as a problem
      we do have alternatives.  For instance, we could start distributing
      a multi-$arch busybox base (hyperledger/fabric-busybox:$arch), TBD.
      Change-Id: I4ed20a429c2cc2e72fd602b45c5c8dd5548bc995
      Signed-off-by: default avatarGreg Haskins <gregory.haskins@gmail.com>
    • Srinivasan Muralidharan's avatar
      Merge changes If3e5fbf0,I2e331d6a · 9bd4e850
      Srinivasan Muralidharan authored
      * changes:
        Remove rocksdb dependency
        Suppress logging output of the peer during unit-tests
    • Gari Singh's avatar
      Merge "fix sbft backlog issue (#2)" · f8e9015e
      Gari Singh authored
    • Jason Yellick's avatar
    • Binh Nguyen's avatar
    • 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>
    • Gabor Hosszu's avatar
    • Marko Vukolic's avatar
      fix sbft backlog issue (#2) · 1cf85008
      Marko Vukolic authored
      Currently sbft backlog automatically places a message from a replica in
      the backlog, if there is already in the backlog a message from that
      replica. This is wrong and makes the new test TestBacklogReordering fail.
      Change-Id: I4ae40552ad363e4005817e328857caee266588a2
      Signed-off-by: Marko Vukolic's avatarMarko Vukolic <mvu@zurich.ibm.com>
    • Srinivasan Muralidharan's avatar
      FAB-1230 - use **TEST_CHAINID** for tests and skeleton · f7b3336d
      Srinivasan Muralidharan authored
      Orderer sets the stage for multichain by forcing brodcast
      and deliver clients to specify ChainID. The solo orderer
      provides a default chain called **TEST_CHAINID** to continue
      development with.
      It would have been easy to hard code **TEST_CHAINID** in
      the lower most utility calls to continue work - basically
      inside protos/utils/ functions.
      However, this changeset takes the next step fo moving to
      using multichain by exposing chainID in core APIs thus
      forcing higher layers to deal with chains. Currently these
      high layers are unit tests, CLI and SDK.
      CLI accepts chain ID via the "-C" param which when not provided
      defaults to **TEST_CHAINID**.
      Change-Id: I0d7894c8f17ce8fae6fe075c9865afae58499005
      Signed-off-by: default avatarSrinivasan Muralidharan <muralisr@us.ibm.com>
    • jiangyaoguo's avatar
      fix DeliverService stop · 8e868b8e
      jiangyaoguo authored
      Currently when peer stopes, DeliverService.stop will be blocked. So you
      can't use "ctrl+c" or "kill" to interrupt or stop peer. Because
      DeliverService use a unbuffered channel stopChan to send stop signal.
      When peer is a gossip.orgLeader, DeliverService don't receive from
      stopChan. So DeliverService.stop will block at "d.stopChan <- true".
      Fix the block bug and use a atomic flag to distinguash unexpected
      connection error and initiative stop.
      Change-Id: If2afd226c5b074e3b78157d84e2f267e741208aa
      Signed-off-by: default avatarjiangyaoguo <jiangyaoguo@gmail.com>
    • Gabor Hosszu's avatar
    • Luis Sanchez's avatar
      [FAB-1165] Use configured PartitionID · d69cd02f
      Luis Sanchez authored
      Subtask of FAB-890
      When publishing to Kafka we have been relying on the
      topic only containing one partition (num.partitions = 1),
      and the default PartitionID (0) in the config lining
      up for a valid combination. This commit configures our
      producer PartitionID configured.
      Change-Id: Ibba476425a15aff9ff447afdfacbf4b77a41ce0c
      Signed-off-by: default avatarLuis Sanchez <sanchezl@us.ibm.com>
    • Gari Singh's avatar
    • Gari Singh's avatar
      Merge "fix sbft backlog processing" · c3392d7e
      Gari Singh authored
    • Srirama Sharma's avatar
      Commenting out JAVA SHIM code for ppc64le & s390x arch · 68b95ec7
      Srirama Sharma authored
      The JAVA SHIM is currently broken on architectures other
      than x86_64. Hence commenting it out for now. Also, using
      hyperledger/fabric-baseimage as base image for javaenv as it
      is generally applicacable to all platforms.
      Change-Id: I356428b84e85a409a3630af8909c940ef43e252f
      Signed-off-by: default avatarSrirama Sharma <sriramsh@in.ibm.com>
    • Gabor Hosszu's avatar
      Merge "Make Sbft log messages better" · a89b8cce
      Gabor Hosszu authored
  6. 29 Nov, 2016 2 commits