Skip to content

Commit

Permalink
Merge branch 'master' of github.com:hyperledger/indy-node into indy50…
Browse files Browse the repository at this point in the history
…5-system-tests
  • Loading branch information
andkononykhin committed Dec 5, 2018
2 parents 456ce8f + 924cc42 commit 45e0efb
Show file tree
Hide file tree
Showing 422 changed files with 7,810 additions and 28,494 deletions.
1 change: 0 additions & 1 deletion .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ exclude =
# have to skip because the file should be fixed
setup.py,
# lots unused import because of fixtures
indy_client/test,
indy_node/test,
# config file
docker-files/indy_config.py
Expand Down
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ before_install:

install:
- pip install -U -e .
- pip install -U indy-client

script:
- python -m indy_node.test
Expand Down
64 changes: 63 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Hyperledger Indy Node Release Notes


* [1.6.78](#1678)

* [1.6.73](#1673)

* [1.6.70](#1670)
Expand Down Expand Up @@ -33,6 +35,66 @@
Although every attempt has been made to make this information as accurate as possible, please know there may be things that are omitted, not fully developed yet, or updates since this publication that were not included in the information below. Only the most pressing or significant items have been listed. For the entire list of tickets and or specific information about any given item, please visit the list at [Hyperleder Indy's Jira](https://jira.hyperledger.org/). Once logged in, simply navigate to Projects > Indy.


## 1.6.78

### Component Version Information

| Components | Version Numbers |
| --- | --- |
| indy-plenum | 1.6.53 |
| indy-anoncreds | 1.0.11 |
| indy-node | 1.6.78 |
| | | |

### Major Fixes

| Description | Additional Information | Ticket Number |
| --- | --- | --- |
| Re-asking for ledger statuses and maximal consistency proofs is not canceled. | | [INDY-1740](https://jira.hyperledger.org/browse/INDY-1740) |
| Bug in calling notifier methods in Restarter. | | [INDY-1741](https://jira.hyperledger.org/browse/INDY-1741) |
| 35 view changes were happened during 10 minutes after nodes failure because of invalid request. | | [INDY-1696](https://jira.hyperledger.org/browse/INDY-1696) |
| Requests queue is not cleared in case of reject-nym transactions. | | [INDY-1700](https://jira.hyperledger.org/browse/INDY-1700) |
| Throughput critically decreases without causing view_change. | | [INDY-1672](https://jira.hyperledger.org/browse/INDY-1740) |
| Node can't catch up large ledger. | | [INDY-1595](https://jira.hyperledger.org/browse/INDY-1595) |
| Unable to demote node in STN. | | [INDY-1621](https://jira.hyperledger.org/browse/INDY-1621) |
| View changes happen when all responses should be rejected during load testing scenario. | | [INDY-1653](https://jira.hyperledger.org/browse/INDY-1653) |
| Node doesn't write txns after disconnection from the rest nodes. | | [INDY-1580](https://jira.hyperledger.org/browse/INDY-1580) |
| Throughput is degrading if backup primary is stopped. | | [INDY-1618](https://jira.hyperledger.org/browse/INDY-1618) |
| | | | |

### Changes - Additions - Known Issues

| Description | Workaround | Ticket |
| --- | --- | --- |
| Switch off a replica that stopped because disconnected from a backup primary. | | [INDY-1681](https://jira.hyperledger.org/browse/INDY-1681) |
| Extend load scripts emulating non-smooth load according to the changes in the core script. | | [INDY-1667](https://jira.hyperledger.org/browse/INDY-1667) |
| Proof of stability under load. | | [INDY-1607](https://jira.hyperledger.org/browse/INDY-1607) |
| Investigate Out of memory issues with the current load testing. | | [INDY-1688](https://jira.hyperledger.org/browse/INDY-1688) |
| Do not re-verify signature for Propagates with already verified requests. | | [INDY-1649](https://jira.hyperledger.org/browse/INDY-1649) |
| POA: Require multiple signatures for important transactions. | | [INDY-1704](https://jira.hyperledger.org/browse/INDY-1704) |
| Support all FEEs txns in the load script. | | [INDY-1665](https://jira.hyperledger.org/browse/INDY-1665) |
| Test domain transactions with FEEs. | | [INDY-1661](https://jira.hyperledger.org/browse/INDY-1661) |
| 3PC Batch should preserve the order of requests when applying PrePrepare on non-primary. | | [INDY-1642](https://jira.hyperledger.org/browse/INDY-1642) |
| Ability to switch off (remove) replicas with no changes of F value. | | [INDY-1680](https://jira.hyperledger.org/browse/INDY-1680) |
| A node should be able to participate in BLS multi-signature only if it has a valid proof of posession. | | [INDY-1589](https://jira.hyperledger.org/browse/INDY-1589) |
| Make validator info as a hystorical data. | | [INDY-1637](https://jira.hyperledger.org/browse/INDY-1637) |
| | | | |
| **Known Issue:** Upgrade failed on pool from 1.3.62 to 1.4.66. Note that INDY-1447 was fixed in indy-node 1.5.68, but it still presents in indy-node 1.3.62 and 1.4.66 code. | **So, some of the nodes may not to be upgraded during simultaneous pool-upgrade.** If this problem will appear, stewards should perform manual upgrade of indy-node in accordance with this [instruction:](https://docs.google.com/document/d/1vUvbioL5OsmZMSkwRcu0p0jdttJO5VS8K3GhDLdNaoI)**(!)** To reduce the risk of reproducing INDY-1447, it is **recommended to use old CLI for pool upgrade.** | [INDY-1447](https://jira.hyperledger.org/browse/INDY-1447) |
| | | | |

### Upgrade Scripts:

**Pool upgrade from indy-node 1.3.62 to indy-node 1.6.78 should be performed simultaneously for all nodes due to txn format changes.**

### Additional Information:

**All indy-cli pools should be recreated with actual genesis files.**

**For more details about txn format changes see** [**INDY-1421**](https://jira.hyperledger.org/browse/INDY-1421) **.**

**There are possible OOM issues during 3+ hours of target load or large catch-ups at 8 GB RAM nodes pool so 32 GB is recommended.**


## 1.6.73

**Important:** Several iterations were done very rapidly between the last release and this one. All of the changes, upgrades, etc... are included in this new release. Simply upgrading will include them all from 1.6.70 until 1.6.73. To see further, specific numerous changes, please reference the appropriate tickets in the [Hyperledger Jira ticketing system.](https://jira.hyperledger.org/)
Expand Down Expand Up @@ -761,4 +823,4 @@ The genesis files are now located in their own directory based off the network n
| **Implemented a command line tool to provide validator status.** | | [INDY-715](https://jira.hyperledger.org/browse/INDY-715) |
| **"Debug" mode for tests was moved to parameter.** | | [INDY-716](https://jira.hyperledger.org/browse/INDY-716) |
| **Log levels were changed on some debug level messages to an info level.** | | [INDY-800](https://jira.hyperledger.org/browse/INDY-800) |
| **If the pool loses enough nodes and cannot reach consensus when enough nodes become available, the pool will still not reach consensus.** | If you restart all the nodes in the pool, it will start reaching consensus again. | [INDY-849](https://jira.hyperledger.org/browse/INDY-849) |
| **If the pool loses enough nodes and cannot reach consensus when enough nodes become available, the pool will still not reach consensus.** | If you restart all the nodes in the pool, it will start reaching consensus again. | [INDY-849](https://jira.hyperledger.org/browse/INDY-849) |
25 changes: 1 addition & 24 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -27,29 +27,6 @@ def nodeTestUbuntu = {
}
}

def clientTestUbuntu = {
try {
echo 'Ubuntu Test: Checkout csm'
checkout scm

echo 'Ubuntu Test: Build docker image'
def testEnv = dockerHelpers.build(name)

testEnv.inside('--network host') {
echo 'Ubuntu Test: Install dependencies'
testHelpers.install()

echo 'Ubuntu Test: Test'
testHelpers.testRunner([resFile: "test-result-client.${NODE_NAME}.txt", testDir: 'indy_client'])
//testHelpers.testJUnit(resFile: "test-result-client.${NODE_NAME}.xml")
}
}
finally {
echo 'Ubuntu Test: Cleanup'
step([$class: 'WsCleanup'])
}
}

def commonTestUbuntu = {
try {
echo 'Ubuntu Test: Checkout csm'
Expand Down Expand Up @@ -90,4 +67,4 @@ def buildDebUbuntu = { repoName, releaseVersion, sourcePath ->
options = new TestAndPublishOptions()
options.enable([StagesEnum.PACK_RELEASE_COPY, StagesEnum.PACK_RELEASE_COPY_ST])
options.setCopyWithDeps(true)
testAndPublish(name, [ubuntu: [node: nodeTestUbuntu, client: clientTestUbuntu, common: commonTestUbuntu]], true, options, [ubuntu: buildDebUbuntu])
testAndPublish(name, [ubuntu: [node: nodeTestUbuntu, common: commonTestUbuntu]], true, options, [ubuntu: buildDebUbuntu])
25 changes: 1 addition & 24 deletions Jenkinsfile.cd
Original file line number Diff line number Diff line change
Expand Up @@ -27,29 +27,6 @@ def nodeTestUbuntu = {
}
}

def clientTestUbuntu = {
try {
echo 'Ubuntu Test: Checkout csm'
checkout scm

echo 'Ubuntu Test: Build docker image'
def testEnv = dockerHelpers.build(name)

testEnv.inside('--network host') {
echo 'Ubuntu Test: Install dependencies'
testHelpers.install()

echo 'Ubuntu Test: Test'
testHelpers.testRunner([resFile: "test-result-client.${NODE_NAME}.txt", testDir: 'indy_client'])
//testHelpers.testJUnit(resFile: "test-result-client.${NODE_NAME}.xml")
}
}
finally {
echo 'Ubuntu Test: Cleanup'
step([$class: 'WsCleanup'])
}
}

def commonTestUbuntu = {
try {
echo 'Ubuntu Test: Checkout csm'
Expand Down Expand Up @@ -193,4 +170,4 @@ options.enable([StagesEnum.PACK_RELEASE_COPY, StagesEnum.PACK_RELEASE_COPY_ST])
options.setCopyWithDeps(true)
options.setSystemTestsCb(systemTests)
options.setPrContexts([env.INDY_GITHUB_PR_REQUIRED_CONTEXT ?: "ci/hyperledger-jenkins/pr-merge"])
testAndPublish(name, [ubuntu: [node: nodeTestUbuntu, client: clientTestUbuntu, common: commonTestUbuntu]], true, options, [ubuntu: buildDebUbuntu])
testAndPublish(name, [ubuntu: [node: nodeTestUbuntu, common: commonTestUbuntu]], true, options, [ubuntu: buildDebUbuntu])
8 changes: 0 additions & 8 deletions Jenkinsfile.ci
Original file line number Diff line number Diff line change
Expand Up @@ -142,14 +142,6 @@ def tests = [
python: python
)
},
client: { python ->
test(
resFile: "test-result-client.${NODE_NAME}.txt",
testDir: 'indy_client',
python: python,
useRunner: true
)
},
node: { python ->
test(
resFile: "test-result-node.${NODE_NAME}.txt",
Expand Down
21 changes: 3 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
* [How to Contribute](#how-to-contribute)
* [How to Install a Test Network](#how-to-install-a-test-network)
* [How to Start Working with the Code](#how-to-start-working-with-the-code)
* [How to Start Indy Client CLI](#how-to-start-indy-client-cli)
* [Continuous integration and delivery](https://github.com/hyperledger/indy-node/blob/master/docs/ci-cd.md)
* [How to send a PR](#how-to-send-a-pr)
* [Docs and links](#docs-and-links)
Expand Down Expand Up @@ -49,11 +48,8 @@ Indy Node repo consists of the following parts:
- indy-node:
- [indy-plenum](https://github.com/hyperledger/indy-plenum)-based implementation of distributed ledger
- Extends plenum's base pool functionality with specific transactions support (CLAIM_DEF, SCHEMA, POOL_UPGRADE, etc.)
- indy-client
- Contains client and CLI code
- Will be deprecated soon in favor of [indy-sdk](https://github.com/hyperledger/indy-sdk), so please use indy-sdk for your own applications dealing with Indy ecosystem.
- indy-common
- Common code for both indy-node and indy-client parts
- Common code for indy-node
- scripts
- Some scripts that can be run for installed Node (in particular, scripts to start Nodes, generate keys, prepare test Network, etc.)
- doc
Expand All @@ -69,15 +65,10 @@ Indy Node repo consists of the following parts:
So, if you want to work with Indy Node, you will need to have the Plenum code as well in most of the cases
and work with two projects at the same time
(see [How to Start Working with the Code](#how-to-start-working-with-the-code) below).
- [indy-anoncreds](https://github.com/hyperledger/indy-anoncreds)
- A python implementation of the anonymous credentials ideas developed by IBM Research.
- This is quite independent from indy-node/plenum. So, in most cases you don't need this code to contribute to Indy-Node.
- It will be deprecated soon in favor of anoncreds implementation in indy-sdk (see below).
- [indy-sdk](https://github.com/hyperledger/indy-sdk)
- An official SDK for Indy.
- it contains client and anoncreds implementation
- You don't need it to contribute to Indy-Node. But please use indy-sdk for your own applications dealing with Indy ecosystem.
- It will replace indy-client and indy-anoncreds parsts soon.
- [indy-crypto](https://github.com/hyperledger/indy-crypto)
- A shared crypto library
- It's based on [AMCL](https://github.com/milagro-crypto/amcl)
Expand Down Expand Up @@ -119,14 +110,6 @@ The described process is automated in one of the ways below (it allow to install
Please have a look at [Dev Setup](docs/setup-dev.md)


## How to Start Indy Client CLI
Once installed, you can play with the command-line interface by running Indy from a terminal.

Note: For Windows, we recommended using either [cmder](http://cmder.net/) or [conemu](https://conemu.github.io/).
```
indy
```

## Continuous Integration and Delivery

Please have a look at [Continuous integration/delivery](docs/ci-cd.md)
Expand Down Expand Up @@ -167,10 +150,12 @@ If you made changes in both indy-plenum and indy-node, you need to do the follow
- Please have a look at documents and diagrams in [docs](docs) folder
- Please have a look at documents and diagrams in Plenum's [docs](https://github.com/hyperledger/indy-plenum/tree/master/docs) folder:
- [Technical Overview of Plenum](https://github.com/hyperledger/indy-plenum/blob/master/docs/main.md)
- [Plenum Consensus Algorithm Diagram](https://github.com/hyperledger/indy-plenum/blob/master/docs/diagrams/consensus-protocol.png)
- [Glossary](https://github.com/hyperledger/indy-plenum/blob/master/docs/glossary.md)
- [Storages](https://github.com/hyperledger/indy-plenum/blob/master/docs/storage.md)
- [Request Handling](https://github.com/hyperledger/indy-plenum/blob/master/docs/request_handling.md)
- [Catchup](https://github.com/hyperledger/indy-plenum/blob/master/docs/catchup.md)
- [Catchup Diagram](https://github.com/hyperledger/indy-plenum/blob/master/docs/diagrams/catchup-procedure.png)
- [Plugins](https://github.com/hyperledger/indy-plenum/blob/master/docs/plugins.md)
- Relationship between Entities and Transactions: [relationship diagram](docs/relationship-diagram.png)
- Supported transactions and their format: [transactions](docs/transactions.md)
Expand Down
2 changes: 2 additions & 0 deletions acceptance/indy-cli-batches/AS-02-02-invalid-cases.batch
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ wallet open AS-02-wallet key=testkey
#demote node as STEWARD of ANOTHER node (FAIL)
did use XhYtvJqezMUKfF6KVNaGmT
- ledger node target=6G9QhQa3HWjRKeRmEvEkLbWWf2t7cw6KLtafzi494G4G alias=Node6 services=
#demote node with wrong pair of target and alias (FAIL)
- ledger node target=4Tn3wZMNCvhSTXPcLinQDnHyj56DTLQtL61ki4jo2Loc alias=Node6 services=
#demote node as TRUST_ANCHOR (FAIL)
did use Rhx2qwaeiGyhU9vn4ynHSS
- ledger node target=4Tn3wZMNCvhSTXPcLinQDnHyj56DTLQtL61ki4jo2Loc alias=Node5 services=
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,5 +101,5 @@ did use UffJCJngTXc1o84dQ7aEUb
- ledger attrib did=X3zYajU7gbz9Pu8k6E7Ppf raw={"endpoint":{"ha":"127.0.0.1:5555"}}
# Identity Owner can create SCHEMA: (PASS with ANYONE_CAN_WRITE=True)
ledger schema name=IdentityOwnerSchema version=1.0 attr_names=name,age
# Identity Owner can create CLAIM_DEF: (PASS with ANYONE_CAN_WRITE=True)
ledger cred-def schema_id=1 signature_type=CL primary={"n":"1","s":"2","rms":"3","r":{"age":"4","name":"5"},"rctxt":"6","z":"7"} tag=3
# Identity Owner can create CLAIM_DEF: (PASS with ANYONE_CAN_WRITE=True, but will fail because of wrong schema id)
- ledger cred-def schema_id=1 signature_type=CL primary={"n":"1","s":"2","rms":"3","r":{"age":"4","name":"5"},"rctxt":"6","z":"7"} tag=3
6 changes: 3 additions & 3 deletions acceptance/indy-cli-batches/AS-03-01-steward.batch
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ did use CDcGtKx1boRYFwPBaGkMmk
- ledger get-nym did=Jt7aMnw77aoaBMyhXUNjtt
# #7.1 AS Steward (steward1) RESTORE TrustAnchor (PASS) ?????????????????????????????????????????????????????????????????
did use 7qFmEyYCXcmUFVied5Sp3b
ledger nym did=CDcGtKx1boRYFwPBaGkMmk role=TRUST_ANCHOR
- ledger nym did=CDcGtKx1boRYFwPBaGkMmk role=TRUST_ANCHOR
# #7.2 CHECK TrustAnchor IS VALID
did use CDcGtKx1boRYFwPBaGkMmk
ledger nym did=XkZJxs6Uadv6MQeKGGZdZ6 verkey=~Aza4zyTRazcVsokmqNJfsg
Expand Down Expand Up @@ -107,5 +107,5 @@ did use 6LKnRH6hWPSpoWu824s5JH
- ledger attrib did=SvXt2QGwZF1kXTcpd2pJ37 raw={"endpoint":{"ha":"127.0.0.1:5555"}}
# Steward can create SCHEMA:
ledger schema name=StewardSchema version=1.0 attr_names=name,age
# Steward can create CLAIM_DEF:
ledger cred-def schema_id=1 signature_type=CL primary={"n":"1","s":"2","rms":"3","r":{"age":"4","name":"5"},"rctxt":"6","z":"7"} tag=1
# Steward can create CLAIM_DEF (will fail because of wrong schema id):
- ledger cred-def schema_id=1 signature_type=CL primary={"n":"1","s":"2","rms":"3","r":{"age":"4","name":"5"},"rctxt":"6","z":"7"} tag=1
4 changes: 2 additions & 2 deletions acceptance/indy-cli-batches/AS-03-01-trust-anchor.batch
Original file line number Diff line number Diff line change
Expand Up @@ -103,5 +103,5 @@ did use ETcbLj612u9oXr7adZSWZV
- ledger attrib did=LoZB9o2PFfSjrpnkugqunZ raw={"endpoint":{"ha":"127.0.0.1:5555"}}
# TrustAnchor can create SCHEMA:
ledger schema name=TrustAnchorSchema version=1.0 attr_names=name,age
# TrustAnchor can create CLAIM_DEF:
ledger cred-def schema_id=1 signature_type=CL primary={"n":"1","s":"2","rms":"3","r":{"age":"4","name":"5"},"rctxt":"6","z":"7"} tag=2
# TrustAnchor can create CLAIM_DEF (will fail because of wrong schema id):
- ledger cred-def schema_id=1 signature_type=CL primary={"n":"1","s":"2","rms":"3","r":{"age":"4","name":"5"},"rctxt":"6","z":"7"} tag=2
4 changes: 2 additions & 2 deletions acceptance/indy-cli-batches/AS-03-01-trustee.batch
Original file line number Diff line number Diff line change
Expand Up @@ -116,5 +116,5 @@ did use 484PvcK1gUqwWEWCkumDzA
- ledger attrib did=QbvWTyhmZmDF8Ms82wC2JD raw={"endpoint":{"ha":"127.0.0.1:5555"}}
# Trustee can create SCHEMA:
ledger schema name=TrusteeSchema version=1.0 attr_names=name,age
# Trustee can create CLAIM_DEF:
ledger cred-def schema_id=1 signature_type=CL primary={"n":"1","s":"2","rms":"3","r":{"age":"4","name":"5"},"rctxt":"6","z":"7"} tag=10
# Trustee can create CLAIM_DEF (will fail because of wrong schema id):
- ledger cred-def schema_id=1 signature_type=CL primary={"n":"1","s":"2","rms":"3","r":{"age":"4","name":"5"},"rctxt":"6","z":"7"} tag=10
Loading

0 comments on commit 45e0efb

Please sign in to comment.