Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ubuntu 22.04 #1716

Draft
wants to merge 7 commits into
base: ubuntu-22.04
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,14 @@ RUN apt-get update -y && apt-get install -y \
# - This deb is a special build using the code here:
# - https://github.com/ioflo/ioflo/commit/45bcddbf680d22af84469406a04286ff1c79043a
# - This line can be removed once the release containing these changes is available on PyPi
python3-ioflo \
#python3-ioflo \
# Need to move libursa.so to parent dir
&& mv /usr/lib/ursa/* /usr/lib && rm -rf /usr/lib/ursa

RUN pip3 uninstall -y ioflo || true

RUN pip3 install --no-cache-dir git+https://github.com/ioflo/ioflo.git

RUN pip3 install -U \
# Required by setup.py
setuptools==50.3.2 \
Expand Down
17 changes: 11 additions & 6 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,20 @@
},

// Set *default* container specific settings.json values on container create.
"settings": {},



// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"mhutchie.git-graph",
"eamodio.gitlens",
"ms-python.python"
],
"customizations": {
"vscode": {
"extensions": [
"mhutchie.git-graph",
"eamodio.gitlens",
"ms-python.python"
],
"settings": {}
}
},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
Expand Down
4 changes: 3 additions & 1 deletion dev-setup/ubuntu/ubuntu-2004/SetupVMTest.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,9 @@
python-dateutil==2.6.1 \
python-rocksdb==0.7.0 \
python-ursa==0.1.1 \
python3-indy==1.13.0 \
indy_vdr==0.4.0.dev5 \
aries-askar==0.2.7 \
indy-credx==0.3.1 \
pyzmq==22.3.0 --install-option=--zmq=bundled \
rlp==0.6.0 \
semver==2.13.0 \
Expand Down
5 changes: 3 additions & 2 deletions plenum/test/common/test_digest_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
import types

import pytest
from indy.did import create_and_store_my_did

from plenum.test.wallet_helper import create_and_store_did

from plenum.server.consensus.ordering_service import OrderingService

Expand All @@ -28,7 +29,7 @@ def op(looper, sdk_wallet_stewards):
wh, did = sdk_wallet_stewards[0]
seed = randomString(32)
new_did, new_verkey = looper.loop.run_until_complete(
create_and_store_my_did(wh, json.dumps({'seed': seed})))
create_and_store_did(wh, seed))
op = {'type': '1',
'dest': new_did,
'verkey': new_verkey,
Expand Down
60 changes: 30 additions & 30 deletions plenum/test/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@
import re
import warnings
import json
import asyncio
from contextlib import ExitStack
from functools import partial
import time
from typing import Dict, Any, List

from indy.pool import create_pool_ledger_config, open_pool_ledger, close_pool_ledger
from indy.wallet import create_wallet, open_wallet, close_wallet
from indy.did import create_and_store_my_did

from plenum.test.wallet_helper import create_and_store_did, wallet_helper, pool_helper
from indy_vdr import set_protocol_version

from ledger.genesis_txn.genesis_txn_file_util import create_genesis_txn_init_ledger
from plenum.bls.bls_crypto_factory import create_default_bls_crypto_factory
Expand Down Expand Up @@ -77,6 +78,7 @@
ROCKSDB_WRITE_BUFFER_SIZE = 256 * 1024



def get_data_for_role(pool_txn_data, role):
name_and_seeds = []
for txn in pool_txn_data['txns']:
Expand All @@ -91,6 +93,11 @@ def get_data_for_role(pool_txn_data, role):
def pytest_xdist_make_scheduler(config, log):
return GroupedLoadScheduling(config, log)

@pytest.fixture(scope="module")
def event_loop():
loop = asyncio.new_event_loop()
yield loop
loop.close()

@pytest.fixture(scope="session")
def warnfilters():
Expand Down Expand Up @@ -875,9 +882,7 @@ def sdk_wallet_data():

async def _gen_pool_handler(work_dir, name, open_config):
txn_file_name = os.path.join(work_dir, "pool_transactions_genesis")
pool_config = json.dumps({"genesis_txn": str(txn_file_name)})
await create_pool_ledger_config(name, pool_config)
pool_handle = await open_pool_ledger(name, open_config)
pool_handle, _ = await pool_helper(txn_file_name)
return pool_handle


Expand All @@ -886,29 +891,29 @@ def sdk_pool_handle(looper, txnPoolNodeSet, tdirWithPoolTxns, sdk_pool_data):
# TODO think about moving protocol version setting to separate
# fixture like 'sdk_init' since some sdk request builders don't
# requires pool handle but use protocol version
sdk_set_protocol_version(looper)

#sdk_set_protocol_version(looper)
pool_name, open_config = sdk_pool_data
pool_handle = looper.loop.run_until_complete(
_gen_pool_handler(tdirWithPoolTxns, pool_name, open_config))
yield pool_handle
try:
looper.loop.run_until_complete(close_pool_ledger(pool_handle))
except Exception as e:
logger.debug("Unhandled exception: {}".format(e))


async def _gen_wallet_handler(wallet_data):
wallet_config, wallet_credentials = wallet_data
await create_wallet(wallet_config, wallet_credentials)
wallet_handle = await open_wallet(wallet_config, wallet_credentials)
return wallet_handle
@pytest.fixture(scope="session", autouse=True)
def set_proto_ver():
"""
Sets sdk protocol version to 2
"""
yield set_protocol_version(2)


@pytest.fixture(scope='module')
def sdk_wallet_handle(looper, sdk_wallet_data):
wallet_handle = looper.loop.run_until_complete(_gen_wallet_handler(sdk_wallet_data))
@pytest.fixture(scope="module")
async def sdk_wallet_handle(set_proto_ver):
"""
Creates a wallet handle and yields it
"""
wallet_handle, _, _ = await wallet_helper()
yield wallet_handle
looper.loop.run_until_complete(close_wallet(wallet_handle))


@pytest.fixture(scope='module')
Expand Down Expand Up @@ -944,16 +949,14 @@ def sdk_new_client_seed():
@pytest.fixture(scope='module')
def sdk_wallet_trustee(looper, sdk_wallet_handle, sdk_trustee_seed):
(trustee_did, trustee_verkey) = looper.loop.run_until_complete(
create_and_store_my_did(sdk_wallet_handle,
json.dumps({'seed': sdk_trustee_seed})))
create_and_store_did(sdk_wallet_handle,sdk_trustee_seed))
return sdk_wallet_handle, trustee_did


@pytest.fixture(scope='module')
def sdk_wallet_steward(looper, sdk_wallet_handle, sdk_steward_seed):
(steward_did, steward_verkey) = looper.loop.run_until_complete(
create_and_store_my_did(sdk_wallet_handle,
json.dumps({'seed': sdk_steward_seed})))
create_and_store_did(sdk_wallet_handle,sdk_steward_seed))
return sdk_wallet_handle, steward_did


Expand All @@ -972,8 +975,7 @@ def sdk_wallet_stewards(looper, sdk_wallet_handle, poolTxnStewardNames, poolTxnD
for name in poolTxnStewardNames:
seed = poolTxnData["seeds"][name]
(steward_did, steward_verkey) = looper.loop.run_until_complete(
create_and_store_my_did(sdk_wallet_handle,
json.dumps({'seed': seed})))
create_and_store_did(sdk_wallet_handle,seed))
stewards.append((sdk_wallet_handle, steward_did))

yield stewards
Expand All @@ -982,16 +984,14 @@ def sdk_wallet_stewards(looper, sdk_wallet_handle, poolTxnStewardNames, poolTxnD
@pytest.fixture(scope='module')
def sdk_wallet_client(looper, sdk_wallet_handle, sdk_client_seed):
(client_did, _) = looper.loop.run_until_complete(
create_and_store_my_did(sdk_wallet_handle,
json.dumps({'seed': sdk_client_seed})))
create_and_store_did(sdk_wallet_handle, sdk_client_seed))
return sdk_wallet_handle, client_did


@pytest.fixture(scope='module')
def sdk_wallet_client2(looper, sdk_wallet_handle, sdk_client_seed2):
(client_did, _) = looper.loop.run_until_complete(
create_and_store_my_did(sdk_wallet_handle,
json.dumps({'seed': sdk_client_seed2})))
create_and_store_did(sdk_wallet_handle, sdk_client_seed2))
return sdk_wallet_handle, client_did


Expand Down
10 changes: 6 additions & 4 deletions plenum/test/freeze_ledgers/helper.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
import json
from typing import List

from indy.ledger import build_ledgers_freeze_request, build_get_frozen_ledgers_request
from indy_vdr import ledger
from plenum.test.helper import sdk_get_and_check_replies, \
sdk_send_signed_requests, sdk_sign_and_submit_req_obj, sdk_multi_sign_request_objects, sdk_json_to_request_object


def sdk_send_freeze_ledgers(looper, sdk_pool_handle, sdk_wallets, ledgers_ids: [int]):
req = looper.loop.run_until_complete(build_ledgers_freeze_request(sdk_wallets[0][1], ledgers_ids))
def sdk_send_freeze_ledgers(looper, sdk_pool_handle, sdk_wallets, ledgers_ids: List[int]):
req = looper.loop.run_until_complete(ledger.build_ledgers_freeze_request(sdk_wallets[0][1], ledgers_ids))
signed_reqs = sdk_multi_sign_request_objects(looper, sdk_wallets,
[sdk_json_to_request_object(json.loads(req))])
reps = sdk_send_signed_requests(sdk_pool_handle, signed_reqs)
return sdk_get_and_check_replies(looper, reps)[0]


# sdk_wallet needs to be DID with new function since wallet no longer tuple
def sdk_get_frozen_ledgers(looper, sdk_pool_handle, sdk_wallet):
req = looper.loop.run_until_complete(build_get_frozen_ledgers_request(sdk_wallet[1]))
req = looper.loop.run_until_complete(ledger.build_get_frozen_ledgers_request(sdk_wallet[1]))
rep = sdk_sign_and_submit_req_obj(looper, sdk_pool_handle, sdk_wallet, sdk_json_to_request_object(json.loads(req)))
return sdk_get_and_check_replies(looper, [rep])[0]
22 changes: 11 additions & 11 deletions plenum/test/helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

import base58
import pytest
from indy.pool import set_protocol_version

from common.serializers.serialization import invalid_index_serializer
from crypto.bls.bls_factory import BlsFactoryCrypto
Expand All @@ -29,9 +28,10 @@
import json
import asyncio

from indy.ledger import sign_and_submit_request, sign_request, submit_request, build_node_request, \
multi_sign_request
from indy.error import ErrorCode, IndyError
from indy_vdr import ledger
from indy_vdr import VdrError, VdrErrorCode
from plenum.test.wallet_helper import sign_and_submit_request, sign_request, multi_sign_request
from indy_vdr import set_protocol_version

from ledger.genesis_txn.genesis_txn_file_util import genesis_txn_file
from plenum.common.constants import DOMAIN_LEDGER_ID, OP_FIELD_NAME, REPLY, REQNACK, REJECT, \
Expand Down Expand Up @@ -804,7 +804,7 @@ def sdk_gen_pool_request(looper, sdk_wallet_new_steward, node_alias, node_did):
}

req = looper.loop.run_until_complete(
build_node_request(new_steward_did, node_did, json.dumps(data)))
ledger.build_node_request(new_steward_did, node_did, json.dumps(data)))

return Request(**json.loads(req))

Expand Down Expand Up @@ -867,7 +867,7 @@ def sdk_signed_random_requests(looper, sdk_wallet, count):

def sdk_send_signed_requests(pool_h, signed_reqs: Sequence):
return [(json.loads(req),
asyncio.ensure_future(submit_request(pool_h, req)))
asyncio.ensure_future(pool_h.submit_request(req)))
for req in signed_reqs]


Expand Down Expand Up @@ -933,10 +933,10 @@ def sdk_get_reply(looper, sdk_req_resp, timeout=None):
try:
resp = looper.run(asyncio.wait_for(resp_task, timeout=timeout))
resp = json.loads(resp)
except IndyError as e:
except VdrError as e:
resp = e.error_code
except TimeoutError as e:
resp = ErrorCode.PoolLedgerTimeout
resp = VdrErrorCode.POOL_TIMEOUT

return req_json, resp

Expand All @@ -957,7 +957,7 @@ def get_res(task, done_list):
except IndyError as e:
resp = e.error_code
else:
resp = ErrorCode.PoolLedgerTimeout
resp = VdrErrorCode.POOL_TIMEOUT
return resp

done, pending = looper.run(asyncio.wait(resp_tasks, timeout=timeout))
Expand All @@ -970,8 +970,8 @@ def get_res(task, done_list):

def sdk_check_reply(req_res):
req, res = req_res
if isinstance(res, ErrorCode):
if res == ErrorCode.PoolLedgerTimeout:
if isinstance(res, VdrErrorCode):
if res == VdrErrorCode.POOL_TIMEOUT:
raise PoolLedgerTimeoutException('Got PoolLedgerTimeout for request {}'
.format(req))
else:
Expand Down
12 changes: 5 additions & 7 deletions plenum/test/pool_transactions/helper.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import json

from indy.did import create_and_store_my_did
from indy.ledger import build_node_request, build_nym_request, \
from plenum.test.wallet_helper import create_and_store_did
from indy_vdr.ledger import build_node_request, build_nym_request, \
build_get_txn_request
from indy.pool import refresh_pool_ledger

from plenum.test.node_catchup.helper import waitNodeDataEquality
from stp_core.loop.looper import Looper
Expand Down Expand Up @@ -34,7 +33,7 @@ def new_client_request(role, name, looper, sdk_wallet):
wh, did = sdk_wallet
seed = randomString(32)
(named_did, named_verkey) = looper.loop.run_until_complete(
create_and_store_my_did(wh, json.dumps({'seed': seed})))
create_and_store_did(wh, seed))
nym_request = looper.loop.run_until_complete(
build_nym_request(did, named_did, named_verkey,
name, role))
Expand Down Expand Up @@ -263,7 +262,7 @@ async def prepare_nym_request(wallet, named_seed, alias,
role, dest=None, verkey=None, skipverkey=False):
wh, submitter_did = wallet
(named_did, named_verkey) = \
await create_and_store_my_did(wh, json.dumps({'seed': named_seed}))
await create_and_store_did(wh, named_seed)
named_did = dest or named_did
named_verkey = verkey or named_verkey
named_verkey = None if skipverkey else named_verkey
Expand Down Expand Up @@ -349,8 +348,7 @@ def sdk_send_update_node(looper, sdk_submitter_wallet,


def sdk_pool_refresh(looper, sdk_pool_handle):
looper.loop.run_until_complete(
refresh_pool_ledger(sdk_pool_handle))
looper.loop.run_until_complete(sdk_pool_handle.refresh())


def sdk_build_get_txn_request(looper, steward_did, seq_no, ledger_type=None):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import json

import pytest
from indy.did import create_and_store_my_did
from plenum.test.node_catchup.helper import ensure_all_nodes_have_same_data

from plenum.test.node_catchup.test_config_ledger import start_stopped_node
Expand Down
6 changes: 3 additions & 3 deletions plenum/test/signing/test_create_did_without_endorser.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
import types

import pytest
from indy.did import create_and_store_my_did
from indy.ledger import build_nym_request
from plenum.test.wallet_helper import create_and_store_did
from indy_vdr.ledger import build_nym_request

from plenum.common.constants import NYM, STEWARD, ROLE, VERKEY
from plenum.common.exceptions import UnauthorizedClientRequest, RequestNackedException, CouldNotAuthenticate
Expand Down Expand Up @@ -45,7 +45,7 @@ def nym_txn_data(looper, sdk_wallet_client):

wh, _ = sdk_wallet_client
sender_did, sender_verkey = \
looper.loop.run_until_complete(create_and_store_my_did(wh, json.dumps({'seed': seed})))
looper.loop.run_until_complete(create_and_store_did(wh, seed))
return wh, randomString(5), sender_did, sender_verkey


Expand Down
Loading
Loading