Skip to content

Commit

Permalink
Merge pull request hyperledger-archives#1868 from Artemkaaas/indy-1.11.1
Browse files Browse the repository at this point in the history
Indy 1.11.1
  • Loading branch information
jovfer authored Aug 29, 2019
2 parents a583838 + f4afee1 commit 453edc8
Show file tree
Hide file tree
Showing 438 changed files with 17,088 additions and 23,329 deletions.
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
# Changelog

## 1.11.1 - 2019-08-30
* Supported endorsing of transactions in Indy-CLI and Libvcx.
* CLI:
* added `endorser` parameter into `nym`, `attrib`, `ledger`, `cred def` commands to set endorser for transaction.
* added `ledger endorse` command to endorse a transaction to the ledger.
* Libvcx:
* added `vcx_*_prepare_for_endorser` - functions for `schema` and `credentialdef` which build transaction and crete internal object in differed state.
* added `vcx_*_update_state` - functions to update state of `schema`/`credentialdef` internal object (checks if it is published on the ledger).
* added `vcx_*_get_state` - functions to get state of `schema`/`credentialdef` internal object.
* added `vcx_endorse_transaction` - function to endorse a transaction to the ledger.
* Added new functions to Anoncreds API to rotate credential definition:
`indy_issuer_rotate_credential_def_start` - to generate temporary keys for an existing Credential Definition.
`indy_issuer_rotate_credential_def_apply` - to apply temporary keys as the main for an existing Credential Definition in the wallet.
* Added sign/verify with payment address functions to Libvcx.
* Supported state proof verification for GET_TXN request.
* Extended `config` parameter of `indy_open_pool_ledger` function to accept `number_read_nodes` value. This value set the number of nodes to send read requests.
* Extended Libvcx initialization config to accept pool configuration.
* Supported new platforms Ubuntu 18.04 and Centos:
* Updated CI pipeline to run tests.
* Updated CD pipeline to build and to publish artifacts.
* Bugfixes

## 1.11.0 - 2019-08-2
* Updated `indy_append_txn_author_agreement_acceptance_to_request` Libindy function to discard the time portion of `acceptance time` on appending TAA metadata into request.
It was done cause too much time precision can lead to privacy risk.
Expand Down
415 changes: 270 additions & 145 deletions Jenkinsfile.cd

Large diffs are not rendered by default.

116 changes: 61 additions & 55 deletions Jenkinsfile.ci
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
#!groovy


libindyBuildFinished = ["Ubuntu": false, "RedHat": false]
libvcxBuildFinished = ["Ubuntu": false, "RedHat": false]
Ubuntu16 = "Ubuntu 16.04"
Ubuntu18 = "Ubuntu 18.04"
RedHat = "RedHat"

libindyBuildFinished = [(Ubuntu16): false, (Ubuntu18): false, (RedHat): false]
libvcxBuildFinished = [(Ubuntu16): false, (Ubuntu18): false, (RedHat): false]

testing()

Expand All @@ -16,18 +20,18 @@ def testing() {
'android-test': { androidTesting() },
'macos-test' : { macosTesting() },
'ios-test' : { iosTesting() },
// FIXME 'redhat-test' : { rhelTesting() }, https://jira.hyperledger.org/browse/IS-1212
// 'centos-test' : { centosTesting() },
'windows-test': { windowsTesting() }
])
}
}

def staticValidation() {
parallel([
'libindy' : { runValdiationRust('libindy') },
'libnullpay' : { runValdiationRust('libnullpay') },
'libvcx' : { runValdiationRust('vcx/libvcx') },
'cli' : { runValdiationRust('cli') }
'libindy' : { runValdiationRust('libindy') },
'libnullpay': { runValdiationRust('libnullpay') },
'libvcx' : { runValdiationRust('vcx/libvcx') },
'cli' : { runValdiationRust('cli') }
])
}

Expand Down Expand Up @@ -80,7 +84,7 @@ def windowsTesting() {
"RUST_BACKTRACE=1"
]) {
bat "cargo build --features fatal_warnings"
bat "cargo test --no-run"
bat 'cargo test --no-run --features only_high_cases'

echo "Windows Libindy before Test: Deleting %TEMP\\indy_client"
bat "DEL /S /Q /F %TEMP%\\indy_client"
Expand All @@ -92,7 +96,7 @@ def windowsTesting() {
"RUST_LOG=indy::=debug,zmq=trace",
"TEST_POOL_IP=$INDY_SDK_SERVER_IP"
]) {
bat "cargo test"
bat 'cargo test --features only_high_cases'
}

echo "Windows Libindy after Test: Deleting %TEMP\\indy_client"
Expand Down Expand Up @@ -248,7 +252,7 @@ def androidTesting() {

def iosTesting() {

def setupRustIOS ={
def setupRustIOS = {
sh "rustup target add x86_64-apple-ios"
}

Expand Down Expand Up @@ -339,59 +343,57 @@ def iosTesting() {

def ubuntuTesting() {
stage('Ubuntu Test') {
linuxTesting("ci/ubuntu.dockerfile ci", "Ubuntu", "pool_network")
parallel([
"ubuntu:16.04": {
linuxTesting("ci/ubuntu.dockerfile ci", Ubuntu16, "pool_network", false)
},
"ubuntu:18.04": {
linuxTesting("ci/ubuntu18.dockerfile ci", Ubuntu18, "pool_network", true)
}
])
}
}

def rhelTesting() {
def centosTesting() {
stage('RedHat Test') {
linuxTesting("ci/amazon.dockerfile ci", "RedHat", "pool_network")
linuxTesting("ci/centos.dockerfile ci", "RedHat", "pool_network", false)
}
}

def linuxTesting(file, env_name, network_name) {
def linuxTesting(file, env_name, network_name, full_testing) {
parallel([
failFast : true,
"${env_name} Test: build and test libindy": {
node('ubuntu') {
linuxLibindyBuild(file, env_name, network_name)
linuxLibindyBuild(file, env_name, network_name, full_testing)
}
},
"${env_name} Test: test other components" : {
waitUntil {
libindyBuildFinished[env_name]
}
def jobs = [
"${env_name}-nodejs-test" : {
linuxModuleTesting(file, env_name, network_name, this.&linuxNodejsTesting)
},
"${env_name}-cli-test" : {
linuxModuleTesting(file, env_name, network_name, this.&linuxCLITesting)
},
"${env_name}-rust-test" : {
linuxModuleTesting(file, env_name, network_name, this.&linuxRustTesting)
},
"${env_name}-vcx-test" : {
vcxTesting(file, env_name, network_name)
},
"${env_name}-cloud-agent-test": {
linuxModuleTesting(file, env_name, network_name, this.&linuxCloudAgentTesting)
vcxTesting(file, env_name, network_name, full_testing)
}
]
if (env_name == "Ubuntu") {
jobs["${env_name}-java-test"] = {
linuxModuleTesting(file, env_name, network_name, this.&linuxJavaTesting)
if (full_testing) {
jobs["${env_name}wrappers-test"] = {
linuxModuleTesting(file, env_name, network_name, this.&linuxIndyWrappersTesting)
}
jobs["${env_name}-python-test"] = {
linuxModuleTesting(file, env_name, network_name, this.&linuxPythonTesting)
jobs["${env_name}-cloud-agent-test"] = {
linuxModuleTesting(file, env_name, network_name, this.&linuxCloudAgentTesting)
}
}
parallel(jobs)
},
])
}

def vcxTesting(file, env_name, network_name) {
def vcxTesting(file, env_name, network_name, full_testing) {
parallel([
failFast : true,
"${env_name} Test: build and test libvcx" : {
Expand All @@ -400,28 +402,17 @@ def vcxTesting(file, env_name, network_name) {
}
},
"${env_name} Test: test other vcx components": {
waitUntil {
libvcxBuildFinished[env_name]
}
def jobs = [
"${env_name}-vcx-nodejs-test": {
linuxModuleTesting(file, env_name, network_name, this.&linuxVcxNodejsTesting)
}
]
if (env_name == "Ubuntu") {
jobs["${env_name}-vcx-java-test"] = {
linuxModuleTesting(file, env_name, network_name, this.&linuxVcxJavaTesting)
}
jobs["${env_name}-vcx-python-test"] = {
linuxModuleTesting(file, env_name, network_name, this.&linuxVcxPythonTesting)
if (full_testing) {
waitUntil {
libvcxBuildFinished[env_name]
}
linuxModuleTesting(file, env_name, network_name, this.&linuxVcxWrappersTesting)
}
parallel(jobs)
},
])
}

def linuxLibindyBuild(file, env_name, network_name) {
def linuxLibindyBuild(file, env_name, network_name, full_testing) {
def poolInst
try {
echo "${env_name} Test: Checkout csm"
Expand Down Expand Up @@ -481,11 +472,13 @@ def linuxLibindyBuild(file, env_name, network_name) {

echo "${env_name} Libindy Test: Test"
testEnv.inside("--network=${network_name}") {
sh '''
def features_args = full_testing ? "--features sodium_static" : "--features \"sodium_static only_high_cases\""

sh """
cd libindy
RUST_BACKTRACE=1 cargo test -j 1 --no-run --features sodium_static
RUST_BACKTRACE=1 RUST_LOG=indy::=debug,zmq=trace RUST_TEST_THREADS=1 TEST_POOL_IP=10.0.0.2 cargo test --features sodium_static
'''
RUST_BACKTRACE=1 cargo test --no-run ${features_args}
RUST_BACKTRACE=1 RUST_LOG=indy::=debug,zmq=trace RUST_TEST_THREADS=1 TEST_POOL_IP=10.0.0.2 cargo test ${features_args}
"""
}

echo "${env_name} Libnullpay Test: Test"
Expand Down Expand Up @@ -603,6 +596,19 @@ def linuxAndroidOnEmulatorTesting(env_name, network_name, testEnv) {
}
}

def linuxIndyWrappersTesting(env_name, network_name, testEnv) {
linuxJavaTesting(env_name, network_name, testEnv)
linuxPythonTesting(env_name, network_name, testEnv)
linuxNodejsTesting(env_name, network_name, testEnv)
linuxRustTesting(env_name, network_name, testEnv)
}

def linuxVcxWrappersTesting(env_name, network_name, testEnv) {
linuxVcxNodejsTesting(env_name, network_name, testEnv)
linuxVcxJavaTesting(env_name, network_name, testEnv)
linuxVcxPythonTesting(env_name, network_name, testEnv)
}

def linuxJavaTesting(env_name, network_name, testEnv) {
unstash name: "LibindyJavaSO${env_name}"
dir('wrappers/java') {
Expand All @@ -621,8 +627,8 @@ def linuxPythonTesting(env_name, network_name, testEnv) {
echo "${env_name} Libindy Test: Test python wrapper"

sh '''
python3.5 -m pip install --user -e .[test]
LD_LIBRARY_PATH=./:${LD_LIBRARY_PATH} TEST_POOL_IP=10.0.0.2 python3.5 -m pytest
python3 -m pip install --user -e .[test]
LD_LIBRARY_PATH=./:${LD_LIBRARY_PATH} TEST_POOL_IP=10.0.0.2 python3 -m pytest
'''
}
}
Expand Down Expand Up @@ -679,8 +685,8 @@ def linuxVcxPythonTesting(env_name, network_name, testEnv) {
echo "${env_name} Vcx Test: Test python wrapper"

sh '''
python3.5 -m pip install --user pytest==3.6.4 pytest-asyncio
LD_LIBRARY_PATH=./:${LD_LIBRARY_PATH} python3.5 -m pytest -s
python3 -m pip install --user pytest==3.6.4 pytest-asyncio
LD_LIBRARY_PATH=./:${LD_LIBRARY_PATH} python3 -m pytest -s
'''
}
}
Expand Down
23 changes: 18 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
![logo](https://raw.githubusercontent.com/hyperledger/indy-node/master/collateral/logos/indy-logo.png)
This is the official SDK for [Hyperledger Indy](https://www.hyperledger.org/projects),
which provides a distributed-ledger-based foundation for [self-sovereign identity](https://sovrin.org). Indy provides a software ecosystem for private, secure, and powerful identity, and the Indy SDK enables clients for it.
The major artifact of the SDK is a c-callable
The major artifact of the SDK is a C-callable
library; there are also convenience wrappers for various programming languages and Indy CLI tool.

All bugs, stories, and backlog for this project are managed through [Hyperledger's Jira](https://jira.hyperledger.org/secure/RapidBoard.jspa)
Expand All @@ -20,7 +20,7 @@ functions in the SDK can be used to construct rich clients: [Indy-SDK Getting-St

* A recent webinar explaining self-sovereign identity using Hyperledger Indy and Sovrin: [SSI Meetup Webinar](https://youtu.be/RllH91rcFdE?t=4m30s)

* Visit the main resource for all things "Indy" to get acquainted with the code base, helpful resources, and up-to-date information: [Hyperledger Wiki-Indy](https://wiki.hyperledger.org/projects/indy).
* Visit the main resource for all things "Indy" to get acquainted with the code base, helpful resources, and up-to-date information: [Hyperledger Wiki-Indy](https://wiki.hyperledger.org/display/indy/).

* You may also want to look at the [older guide](https://github.com/hyperledger/indy-node/blob/stable/getting-started.md)
that explored the ecosystem via command line. That material is being
Expand Down Expand Up @@ -109,15 +109,16 @@ The Indy SDK release process defines the following release channels:

Please refer to our [release workflow](docs/contributors/release-workflow.md) for more details.

### Ubuntu based distributions (Ubuntu 16.04)
### Ubuntu based distributions (Ubuntu 16.04 and 18.04)
It is recommended to install the SDK packages with APT:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CE7709D068DB5E88
sudo add-apt-repository "deb https://repo.sovrin.org/sdk/deb xenial {release channel}"
sudo add-apt-repository "deb https://repo.sovrin.org/sdk/deb (xenial|bionic) {release channel}"
sudo apt-get update
sudo apt-get install -y libindy

{release channel} must be replaced with master, rc or stable to define corresponded release channel.
* (xenial|bionic) xenial for 16.04 Ubuntu and bionic for 18.04 Ubuntu.
* {release channel} must be replaced with master, rc or stable to define corresponded release channel.
Please See the section "Release channels" above for more details.

### Windows
Expand Down Expand Up @@ -179,6 +180,17 @@ that may be need for your applications.

* `libindy.a` - This is a static library, which is compiled with NDK.

### Centos

1. Go to https://repo.sovrin.org/rpm/{library}/{release-channel}.
2. Download the last version of library.
3. Install with `rpm -i library-version.rpm`.

{library} must be replaced with libindy, libnullpay, libvcx, indy-cli to define corresponded library.

{release channel} must be replaced with master, rc or stable to define corresponded release channel.
See section "Release channels" for more details.

[How to use instructions.](https://github.com/hyperledger/indy-sdk/blob/master/docs/android-build.md#usage)

{release channel} must be replaced with rc or stable to define corresponded release channel.
Expand Down Expand Up @@ -323,6 +335,7 @@ The documents that provide necessary information for Libindy migrations.

## How to Contribute
* We'd love your help; see these [instructions on how to contribute](http://bit.ly/2ugd0bq).
* If you need to add a new call, read this [instruction](docs/how-tos/how-to-add-a-new-API-call.md).
* You may also want to read this info about [maintainers](MAINTAINERS.md) and our process.
* We use developer certificate of origin (DCO) in all hyperledger repositories,
so to get your pull requests accepted, you must certify your commits by signing off on each commit.
Expand Down
23 changes: 23 additions & 0 deletions Specs/libindy/1.11.1/libindy.podspec.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "libindy",
"version": "1.11.1",
"summary": "Summary TODO.",
"description": "Description TODO.",
"homepage": "TODO",
"license": {
"type": "Apache License 2.0",
"file": "LICENSE"
},
"authors": {
"Daniel Hardman": "[email protected]"
},
"platforms": {
"ios": "10.0"
},
"source": {
"http": "https://repo.sovrin.org/ios/libindy/stable/libindy-core/1.11.1/libindy.tar.gz"
},
"source_files": "*.h",
"vendored_libraries": "*.a",
"requires_arc": false
}
6 changes: 4 additions & 2 deletions ci/deb-build-and-upload.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set -e
set -x

if [ "$1" = "--help" ] ; then
echo "Usage: <package> <version> <key> <type> <suffix> <repo> <host> <key>"
echo "Usage: <package> <version> <key> <type> <suffix> <repo> <host> <key> <package_type>"
return
fi

Expand All @@ -15,6 +15,7 @@ suffix="$4"
repo="$5"
host="$6"
key="$7"
package_type="$8"

[ -z $package ] && exit 1
[ -z $version ] && exit 2
Expand All @@ -23,11 +24,12 @@ key="$7"
[ -z $repo ] && exit 5
[ -z $host ] && exit 6
[ -z $key ] && exit 7
[ -z $package_type ] && exit 8

sed -i -E -e 'H;1h;$!d;x' -e "s/$package ([(,),0-9,.]+)/$package ($version$suffix)/" debian/changelog

dpkg-buildpackage -tc

mkdir debs && mv ../*.deb ./debs/

./sovrin-packaging/upload_debs.py ./debs $repo $type --host $host --ssh-key $key
./sovrin-packaging/upload_debs.py ./debs $repo $type --distro=$package_type --host $host --ssh-key $key
4 changes: 2 additions & 2 deletions ci/indy-pool.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ RUN echo "deb https://repo.sovrin.org/deb xenial $indy_stream" >> /etc/apt/sourc

RUN useradd -ms /bin/bash -u $uid indy

ARG indy_plenum_ver=1.9.1~dev856
ARG indy_node_ver=1.9.1~dev1043
ARG indy_plenum_ver=1.9.2~dev871
ARG indy_node_ver=1.9.2~dev1061
ARG python3_indy_crypto_ver=0.4.5
ARG indy_crypto_ver=0.4.5

Expand Down
Loading

0 comments on commit 453edc8

Please sign in to comment.