github.com/ewagmig/fabric@v2.1.1+incompatible/release_notes/v1.2.0-rc1.txt (about)

     1  v1.2.0-rc1 Release Notes - June 22, 2018
     2  ----------------------------------------
     3  
     4  What's New in v1.2
     5  ------------------
     6  
     7  The following features/epics are included in this release:
     8  
     9  FAB-8718 - Channel Private Data
    10  Keep chaincode data confidential among a subset of channel members.
    11  
    12  FAB-8727 - Access control for peer functions
    13  Configure which client identities can interact with peer functions, per channel.
    14  
    15  FAB-8729 - Pluggable endorsement and validation
    16  Utilize pluggable endorsement and validation logic per chaincode.
    17  
    18  FAB-8779 - Service Discovery
    19  Discover network services dynamically, including orderers, peers, chaincode,
    20  and endorsement policies, to simplify client applications.
    21  
    22  Hygiene and Technical debt
    23  Ginkgo-based integration tests have been added, and component code has been
    24  refactored for improved readability and maintainability.
    25  
    26  
    27  Changes, Known Issues, and Workarounds
    28  --------------------------------------
    29  
    30  FAB-10151 - configtx.yaml samples fixed
    31  
    32  Previous releases included example input files for configtxgen (configtx.yaml)
    33  that contained invalid YAML which referenced YAML anchors before they were
    34  defined. It was not a problem in prior releases since the golang YAML parser
    35  tolerated references before definitions.
    36  The configtx.yaml samples are corrected in version v1.2. Users are advised
    37  to evaluate their configtxgen input documents for places where YAML anchors
    38  are referenced before they are defined. Either reorder nodes to ensure
    39  anchors are defined before they are referenced, or re-create YAML documents
    40  using the updated configtx.yaml sample documents as a starting point.
    41  Refer to https://jira.hyperledger.org/browse/FAB-10151 for more details.
    42  
    43  
    44  FAB-8557 - Transaction index and query behavior changed
    45  
    46  There is a change to how some of the indexes maintained by ledger are updated.
    47  Specifically, this includes indexes that maintain information by txid. In the rare
    48  scenario when two transactions were submitted with the same transaction ids,
    49  in the previous releases, the last transaction would be indexed. Only the first
    50  instance of a transaction can be valid, therefore it was possible for an invalid
    51  transaction to overwrite the status of a valid transaction, and therefore APIs
    52  such as 'GetTransactionByID' and 'GetBlockByTxID' may return the latter invalid
    53  transaction. In these cases the ledger remained correct, however transaction
    54  queries may have returned unexpected results.
    55  In this release, the behavior is changed so that the first transaction (the only
    56  instance that can be valid) will not be overwritten in the index.
    57  In the rare scenario where this problem has occurred on a channel, the peer's
    58  transaction index can be rebuilt after upgrading to version v1.2, by stopping the
    59  peer, deleting the <CORE_PEER_FILESYSTEMPATH>/ledgersData/chains/index directory,
    60  and restarting the peer. The peer will automatically rebuild its indexes
    61  using the new behavior.
    62  Refer to https://jira.hyperledger.org/browse/FAB-8557 for more details.
    63  
    64  
    65  FAB-8877 - Reserved field validation for CouchDB state database
    66  
    67  Prior releases did not validate chaincode data against all state database
    68  content restrictions.  Specifically, version v1.2 adds validation during
    69  chaincode execution to ensure that keys that will be written to CouchDB
    70  state database are UTF8 complaint, do not start with an underscore, and
    71  that there are no top-level JSON fields named '~version' or that start with
    72  underscores, as these fields are reserved for use by CouchDB (and Fabric).
    73  If these conditions are found during chaincode execution, an error will
    74  be returned to the client in the proposal response.
    75  For the same reason, all peers on a channel must utilize the same state
    76  database type, and it is not possible to convert a channel's peers from
    77  using LevelDB state database to CouchDB state database, unless the
    78  chaincode performs the same validations.
    79  Refer to https://jira.hyperledger.org/browse/FAB-8877 for more details.
    80  
    81  
    82  Known Vulnerabilities
    83  ---------------------
    84  FAB-8664 - Peer does not detect his own org ejection
    85  This is a relatively low severity problem, because it requires a significant
    86  conspiracy of network admins, but it will be addressed in an upcoming release.
    87  
    88  
    89  Resolved Vulnerabilities
    90  ------------------------
    91  FAB-10537 - Reject CONFIG/ORDERER_TRANSACTION messages
    92  Ensures that clients cannot submit transactions intended to be generated
    93  from orderer nodes.
    94  
    95  
    96  Other improvements and fixes
    97  ----------------------------
    98  For the full list of improvements and fixes, refer to the release change log:
    99  https://github.com/hyperledger/fabric/blob/master/CHANGELOG.md#v120-rc1