rjones (Fri, 16 Oct 2020 16:25:48 GMT):
PatrikStas

PatrikStas (Fri, 16 Oct 2020 17:25:48 GMT):
User User_1 added by PatrikStas.

PatrikStas (Fri, 16 Oct 2020 17:25:48 GMT):
User User_2 added by PatrikStas.

PatrikStas (Fri, 16 Oct 2020 17:25:48 GMT):
User User_3 added by PatrikStas.

andrew.whitehead (Fri, 16 Oct 2020 17:40:00 GMT):
Has joined the channel.

PatrikStas (Fri, 16 Oct 2020 17:44:02 GMT):
@rjones thanks for getting us the channel! :thumbsup:

TimoGlastra (Fri, 16 Oct 2020 18:59:11 GMT):
Has joined the channel.

m00sey (Fri, 16 Oct 2020 21:17:13 GMT):
Has joined the channel.

tarkochevamik (Fri, 16 Oct 2020 21:17:52 GMT):
Has joined the channel.

thomas_kim (Mon, 19 Oct 2020 08:22:02 GMT):
@PatrikStas How are you doing? I like the way you are going to implement for the `vcx-messages-download`. We only use this api for getting the context now.

thomas_kim (Mon, 19 Oct 2020 08:24:13 GMT):
We want to update demo project for aries-framework-rs when you are done with cleaning up code and re-implement some important APIs, such as, `vcx-messages-download`.

thomas_kim (Mon, 19 Oct 2020 08:24:13 GMT):
We want to update demo projects for aries-framework-rs when you are done with cleaning up code and re-implement some important APIs, such as, `vcx-messages-download`.

thomas_kim (Mon, 19 Oct 2020 08:26:19 GMT):
BTW, I'm really glad that aries-framework-rs is under Hyperledger again :)

rjones (Mon, 19 Oct 2020 13:33:05 GMT):
Room name changed to: aries-framework-rs by rjones

ajayjadhav (Mon, 19 Oct 2020 17:40:20 GMT):
Has joined the channel.

rileyphughes (Mon, 19 Oct 2020 22:41:03 GMT):
Has joined the channel.

thomas_kim (Tue, 20 Oct 2020 05:20:41 GMT):
@PatrikStas What is the relationship between vcxagencynode and https://github.com/hyperledger/aries-framework-rs/tree/master/agents/node?

thomas_kim (Tue, 20 Oct 2020 05:20:41 GMT):
@PatrikStas What is the relationship between `vcxagencynode` and https://github.com/hyperledger/aries-framework-rs/tree/master/agents/node?

krgko (Tue, 20 Oct 2020 07:06:41 GMT):
Has joined the channel.

PatrikStas (Tue, 20 Oct 2020 14:26:27 GMT):
@thomas_kim basically not much. We have written JS code representing simple Aries agent with persistent (file) storage mostly to conveniently do integration testing of NodeJS wrapper

PatrikStas (Tue, 20 Oct 2020 14:28:19 GMT):
But perhaps https://github.com/hyperledger/aries-framework-rs/tree/master/agents/node/vcxagent-cli could be utilized by almost anyone (even outside of aries-framework-rs) as CLI Aries agent (but it's pretty simple, it's primarily for manual testing of other aries agents and doesn't have that many options)

PatrikStas (Tue, 20 Oct 2020 14:32:05 GMT):
as for `vcxagencynode` and its relationship to `aries-framework-rs`, it stays as was before, it's just an implementation of the original libvcx client2agency protocol. We are working now on modularization of client2agency protocol code, so oncee that piece is done, it would open up possibility to swap libvcx client2agency protocol implementation for aries client2agency protocol.

kdenhartog (Tue, 20 Oct 2020 16:28:44 GMT):
Has joined the channel.

kukgini (Wed, 21 Oct 2020 02:08:56 GMT):
Has joined the channel.

brentzundel (Wed, 21 Oct 2020 13:08:33 GMT):
Has joined the channel.

jakubkoci (Thu, 22 Oct 2020 12:06:56 GMT):
Has joined the channel.

rjones (Thu, 22 Oct 2020 13:57:12 GMT):
Room name changed to: aries-vcx by rjones

rjones (Thu, 22 Oct 2020 16:48:23 GMT):
https://github.com/hyperledger/aries-vcx/pull/162

rileyphughes (Thu, 22 Oct 2020 17:51:34 GMT):
curious, why the name change?

PatrikStas (Thu, 22 Oct 2020 17:56:10 GMT):
We thought having `-rs` in the name isn't right, as the library provides wrappers for multiple languages. But then removing `-rs` from `aries-framework-rs` would make it `aries-framework`, which is too general. Besides we realized "vcx" was much more convenient to prounounce or type than `aries-framework-rs` :-D

PatrikStas (Thu, 22 Oct 2020 17:56:10 GMT):
We thought having `-rs` in the name isn't right, as the library provides wrappers for multiple languages. But then removing `-rs` from `aries-framework-rs` would make it `aries-framework`, which is too general. Besides we realized "vcx" was much more convenient to prounounce or type than `aries-framework-rs` :-)

rileyphughes (Thu, 22 Oct 2020 18:05:56 GMT):
We just had a conversation at IIW about the landscape of aries codebases, and how the naming conventions of aries codebases are confusing (not standardized, therefore poses a learning curve). Doesn't aca-py have controllers written in various different languages as well?

PatrikStas (Thu, 22 Oct 2020 18:17:06 GMT):
Perhaps yes, I was also told `aries-framework-go` also have wrappers for other languages but we realized it's not approach we wanted to take. I don't think it's great idea to name things `aries-framework-` because it will likely drive developers to their particular language perhaps without even look at other options. As NodeJS developer, I likely wouldn't dig into `aries-framework-go` codebase, even though in fact - I could have used it to build my application.

rileyphughes (Thu, 22 Oct 2020 18:42:54 GMT):
I agree! However I don't know of an alternative that makes more sense. I don't really mind *how* things are named, just that we try to be consistent. Consistency can only be a good thing for the average newbie. Just my $0.02

thomas_kim (Wed, 04 Nov 2020 07:17:53 GMT):
@PatrikStas How have you been? For us, it's time to migrate from vcx of indy-sdk to aries-vcx, and for the first step, we want to update our demo code with the v0.12.0. Do you think it is the right time to do it?

PatrikStas (Wed, 04 Nov 2020 16:53:00 GMT):
hi @thomas_kim yeah I think it's good time. Keep in mind you still have to expect some breaking changes, but I don't expect something significant (visible to someone calling via FFI) Initially after fork it was really wild without much system, but we are stabilizing when it comes to both code and the process. We try to keep changelog clean and track future work via github issues

PatrikStas (Wed, 04 Nov 2020 16:55:52 GMT):
If you've been using `indysdk-libvcx` until now, things might not work out of box but are definitely here to assist. Also keep in mind that some datastructures have changed a bit, so for example a "Connection" object created in `indysdk-libvcx` won't work on `aries-vcx`

PatrikStas (Wed, 04 Nov 2020 16:57:11 GMT):
I think the first step would be to sync up Java wrapper demo, we do maintain Java wrapper because we use it on Android, but we didn't maintain Java demo

thomas_kim (Thu, 05 Nov 2020 02:13:04 GMT):
I got it. First of all, I'm going to work on Java demo with a java wrapper :)

thomas_kim (Thu, 05 Nov 2020 02:13:04 GMT):
I got it. First of all, I'm going to work on Java demo with a Java wrapper then :)

thomas_kim (Wed, 11 Nov 2020 07:24:11 GMT):
@PatrikStas I just have updated the vcx-demo-android project (https://github.com/sktston/vcx-demo-android/tree/develop) with the aries-vcx v0.13.1 :)

thomas_kim (Wed, 11 Nov 2020 07:24:11 GMT):
@PatrikStas I just have updated the vcx-demo-android project (https://github.com/sktston/vcx-demo-android/tree/develop) with the aries-vcx v0.13.1 :) Hear is the main activity: https://github.com/sktston/vcx-demo-android/blob/develop/app/src/main/java/com/sktelecom/ston/demo/MainActivity.java

thomas_kim (Wed, 11 Nov 2020 07:24:11 GMT):
@PatrikStas I just have updated the vcx-demo-android project (https://github.com/sktston/vcx-demo-android/tree/develop) with the aries-vcx v0.13.1 :) Any comments are welcome. The script to have necessary libraries: https://github.com/sktston/vcx-demo-android/blob/master/populate_libraries.sh Hear is the main activity: https://github.com/sktston/vcx-demo-android/blob/develop/app/src/main/java/com/sktelecom/ston/demo/MainActivity.java

thomas_kim (Wed, 11 Nov 2020 07:24:11 GMT):
@PatrikStas I just have updated the vcx-demo-android project (https://github.com/sktston/vcx-demo-android/tree/develop) with the aries-vcx v0.13.1 :) Any comments are welcome. The script to have necessary libraries: https://github.com/sktston/vcx-demo-android/blob/master/populate_libraries.sh Here is the main activity: https://github.com/sktston/vcx-demo-android/blob/develop/app/src/main/java/com/sktelecom/ston/demo/MainActivity.java

thomas_kim (Fri, 20 Nov 2020 07:57:24 GMT):
I have update iOS demo project with the latest aries-vcx. :) https://github.com/sktston/vcx-demo-ios

thomas_kim (Fri, 20 Nov 2020 07:57:24 GMT):
I have updated iOS demo project with the latest aries-vcx. :) https://github.com/sktston/vcx-demo-ios

baegjae (Mon, 23 Nov 2020 05:05:09 GMT):
Has joined the channel.

baegjae (Mon, 23 Nov 2020 05:05:13 GMT):
Hi @PatrikStas. How are you? I can not find faber/alice demo in node wrapper. I want to check the revised APIs. Thanks! :)

baegjae (Mon, 23 Nov 2020 06:15:50 GMT):
Oh. I found it here. https://github.com/hyperledger/aries-vcx/tree/master/agents/node/vcxagent-core/demo

marc0olo (Mon, 30 Nov 2020 04:53:21 GMT):
Has joined the channel.

thomas_kim (Wed, 02 Dec 2020 07:18:41 GMT):
@PatrikStas @mirgee I don't see any mobile SDK binaries in the release of v.0.14.1.

mirgee (Wed, 02 Dec 2020 08:32:56 GMT):
@thomas_kim Thanks for the reminder, I'll fix it :)

thomas_kim (Wed, 02 Dec 2020 08:44:59 GMT):
Thanks :)

thomas_kim (Thu, 03 Dec 2020 01:37:01 GMT):
@mirgee Also, we don't have libvcx-android-0.14.0-device.aar in the release of v.0.14.0

mirgee (Thu, 03 Dec 2020 08:10:09 GMT):
@thomas_kim Added 0.14.0 android device build, new release will be ready soon

PascalHeitz (Wed, 09 Dec 2020 10:11:34 GMT):
Has joined the channel.

thomas_kim (Mon, 04 Jan 2021 09:45:39 GMT):
@mirgee @PatrikStas Happy new year both of you :)

mirgee (Mon, 04 Jan 2021 09:49:08 GMT):
Likewise, @thomas_kim :)

PatrikStas (Fri, 08 Jan 2021 15:30:04 GMT):
Happy new year @thomas_kim Also, vcx-agency node `0.2.0` was just released. https://github.com/AbsaOSS/vcxagencynode It has new notification mechanism to be used on mobile devices. There's new endpoint to longpoll for new messages of an agent by its DID. Internally that's implemented via Redis pubsub. There's new required environment variable AGENCY_TYPE which can have value of `client` or `enterprise`. The only difference now is that `client` must have specified `REDIS_URL` env variable (for longpolling new msgs feature), whilst `enteprise` agency does not need to have `REDIS_URL` specified (the feature will be disabled)

PatrikStas (Fri, 08 Jan 2021 15:30:04 GMT):
Happy new year @thomas_kim Also, vcx-agency node `0.2.0` was just released. https://github.com/AbsaOSS/vcxagencynode/releases/tag/0.2.0 It has new notification mechanism to be used on mobile devices. There's new endpoint to longpoll for new messages of an agent by its DID. Internally that's implemented via Redis pubsub. There's new required environment variable AGENCY_TYPE which can have value of `client` or `enterprise`. The only difference now is that `client` must have specified `REDIS_URL` env variable (for longpolling new msgs feature), whilst `enteprise` agency does not need to have `REDIS_URL` specified (the feature will be disabled)

thomas_kim (Wed, 24 Feb 2021 07:48:19 GMT):
@PatrikStas How have you been? How is it going? Do you happen to have a plan for developing the mysql plugin for the vcxagencynode with https://github.com/evernym/mysql-wallet-storage ?

thomas_kim (Wed, 24 Feb 2021 07:48:19 GMT):
@PatrikStas How have you been? How is it going? Do you happen to have a plan for developing the MySQL plugin for the vcxagencynode with https://github.com/evernym/mysql-wallet-storage ?

PatrikStas (Wed, 24 Feb 2021 08:22:00 GMT):
Hi @thomas_kim all good! Little bit busy on some internal projects, but hopefuly we'll be soon able to restore our activity on aries-vcx :-) To your question - we have good experience with pqsql wallet implementation so far so we were not thinking of that. Do you have some reason why you'd prefer mysql over postgres?

thomas_kim (Wed, 24 Feb 2021 08:25:01 GMT):
You know.. in the enterprise environment, my company prefers MySQL than PostgreSQL, and many services in our platform are only using the MySQL

thomas_kim (Wed, 24 Feb 2021 08:26:02 GMT):
So, recently, we are testing ACA-Py with the MySQL plugin, and it is the time for vcxnodeagency now

thomas_kim (Wed, 24 Feb 2021 08:27:22 GMT):
I just looked into code of vcxnodeagency, and found that is is using the postgres itself to create tables and manage incoming / outgoing data

thomas_kim (Wed, 24 Feb 2021 08:27:22 GMT):
I just looked into code of vcxnodeagency, and found that it is using the postgres itself to create tables and manage incoming / outgoing data

PatrikStas (Wed, 24 Feb 2021 08:27:45 GMT):
gotcha, well we are not planning to do that, but we definitely encourage contribution, I think it should be quite doable. We'd have to adjust configuration (there's pgsql specific values which would probably make no sense with mysql plugin) and then maybe extract and refactor logic around setting up the wallet/plugin

PatrikStas (Wed, 24 Feb 2021 08:28:08 GMT):
oooh yeah and then there's those custom tables, i forgot

thomas_kim (Wed, 24 Feb 2021 08:28:27 GMT):
https://github.com/AbsaOSS/vcxagencynode/blob/f2f17e417cbd5caa26c7531a710e4b0f95a331d7/vcxagency-node/src/service/storage/pgstorage-entities.js#L24

thomas_kim (Wed, 24 Feb 2021 08:28:34 GMT):
Yes, right

PatrikStas (Wed, 24 Feb 2021 08:28:41 GMT):
yes yes, well I think it shouldn't be creating any tables

PatrikStas (Wed, 24 Feb 2021 08:29:12 GMT):
we should have some migration scripts instead, outside the agency source code itself

PatrikStas (Wed, 24 Feb 2021 08:29:38 GMT):
it was matter of convenience, but the logic around creating database and tables should be pulled out

thomas_kim (Wed, 24 Feb 2021 08:30:06 GMT):
Got it. Also, what is the recent changes about AWS S3?

PatrikStas (Wed, 24 Feb 2021 08:30:57 GMT):
If you use agency with TLS enabled, we added option to download your tls certificate+key from S3 bucket.

thomas_kim (Wed, 24 Feb 2021 08:31:11 GMT):
Oh. you are getting the certificates from S#?

thomas_kim (Wed, 24 Feb 2021 08:31:11 GMT):
Oh. you are getting the certificates from S3?

thomas_kim (Wed, 24 Feb 2021 08:31:22 GMT):
Got it

thomas_kim (Wed, 24 Feb 2021 08:31:43 GMT):
Awesome

PatrikStas (Wed, 24 Feb 2021 08:33:44 GMT):
There's a fairly big refactor of a few files in pending PR, should be merged today/tomorrow, but just in case you are planning to start working on the mysql stuff already, I recommended starting on top this PR https://github.com/AbsaOSS/vcxagencynode/pull/66

thomas_kim (Wed, 24 Feb 2021 08:35:47 GMT):
Got it. I haven't started it yet.

thomas_kim (Wed, 24 Feb 2021 08:35:47 GMT):
Got it. I haven't started it yet though.

thomas_kim (Fri, 26 Feb 2021 04:22:14 GMT):
@PatrikStas We just decided to use postgres :) BTW, do we have health check APIs for vcxagencynode? I just want to have readiness / liveness settings for Kubernetes

rpobulic (Sun, 07 Mar 2021 05:21:54 GMT):
Has joined the channel.

kukgini (Tue, 30 Mar 2021 10:19:13 GMT):
Has left the channel.

profae (Thu, 13 May 2021 13:44:45 GMT):
Has joined the channel.

profae (Thu, 13 May 2021 13:44:45 GMT):
Hello could I have info on the new init flow? In the previous version I used vcxProvisionAgent, only first time, and vcxInitWithConfig always. Now it is not clear to me which functions should be called among the new ones. I call: 1. vcxInitThreadpool 2. vcxOpenMainPool 3. createWallet 4. openMainWallet 5. vcxCreateAgencyClientForMainWallet All return ok, but following operations fail Thanks

profae (Fri, 14 May 2021 06:52:21 GMT):
i found my error, now it works.

profae (Fri, 14 May 2021 06:52:57 GMT):
I did not invoke vcxProvisionCloudAgent

profae (Tue, 25 May 2021 05:34:11 GMT):
Hi, I'm testing the library, deserializing objects created with the indy-sdk version, it gives the error Invalid JSON string "... Caused by: Cannot deserialize Connection: Error("unknown variant `2.0`, expected `1.0` ..."

profae (Tue, 25 May 2021 05:34:11 GMT):
Hi, I'm testing the library, deserializing objects created with the indy-sdk version, it gives the error Invalid JSON string "... Caused by: Cannot deserialize Connection: Error("unknown variant `2.0`, expected `1.0` ..." are not compatible? thanks

profae (Tue, 25 May 2021 06:51:19 GMT):
the two json are different, pw_verkey vs pw_vk

PatrikStas (Tue, 25 May 2021 08:25:48 GMT):
Hi profae, there has gigantic amount of refactoring between indy-sdk libvcx version, and aries-vcx including breaking changes. One of them was that the structure of serialized connection object has changed. If you want to import your old connection objects, you would have to do some digging as for what changed and migrate it to the new format.

profae (Tue, 25 May 2021 09:31:03 GMT):
Thanks, can you tell me the other breaking changes?

thomas_kim (Wed, 26 May 2021 01:53:46 GMT):
How are you Patrik? Can I upgrade vcxagencynode from 0.2.0 to 0.3.0 without any issues? Are there any breaking changes? such as schema changes of database?

PatrikStas (Wed, 26 May 2021 14:10:21 GMT):
It's difficult to enumarate, It's been almost 1 year of development since we forked indy-sdk libvcx. The most significant changes has been related to initialization of the library (as seems you have already dealt with), we deprecated (and soon delete) update functions (you can get idea here https://github.com/hyperledger/aries-vcx/pull/240/files, but this was applied on all objects with update functions), we deprecated old unsafe function to download messages from agency https://github.com/hyperledger/aries-vcx/pull/158, the structure of connection objects (honestly I am not sure if there was changes to structure of other types of objects). You can find some additional breaking changes if you click through release notes https://github.com/hyperledger/aries-vcx/releases

PatrikStas (Wed, 26 May 2021 14:18:50 GMT):
hi @thomas_kim the changes are documented in release notes https://github.com/AbsaOSS/vcxagencynode/releases/tag/0.3.0 There has not been significant changes, but to make sure I'd recommend to run 0.2.0 in docker + redis + pg all with persistent docker images, run some code against it, then switch agency to 0.3.0 and see if there's no issues

PatrikStas (Wed, 26 May 2021 14:18:50 GMT):
hi @thomas_kim the changes are documented in release notes https://github.com/AbsaOSS/vcxagencynode/releases There has not been significant changes, but to make sure I'd recommend to run 0.2.0 in docker + redis + pg all with persistent docker images, run some code against it, then switch agency to 0.3.0 and see if there's no issues

thomas_kim (Thu, 27 May 2021 02:21:17 GMT):
Thanks!

thomas_kim (Thu, 27 May 2021 07:28:18 GMT):
Patrik, I have a question about health api (/api/health). Can I consider this as checking the liveness rather than the readiness?

thomas_kim (Thu, 27 May 2021 07:30:15 GMT):
I think we can use the health api for both readiness and liveness.

PatrikStas (Fri, 11 Jun 2021 09:35:11 GMT):
hi @thomas_kim I am checking Kubernetes definitions of liveness and readiness here https://spring.io/blog/2020/03/25/liveness-and-readiness-probes-with-spring-boot and by this definition, currently `/api/health` is only a simple readiness endpoint. If you look at that endpoint implementation, it really just returns 200OK as far as HTTP(S) server is listening - it does not check internal state of agency.

PatrikStas (Fri, 11 Jun 2021 09:41:34 GMT):
If you need more sophisticated checks for liveness, I think the way to go would be if the agency periodically verifies connectivity to pgsql and redis (in case of client agency) and then reflect the results as liveness ( we could expand the response payload for `/api/health` endpoint)

PatrikStas (Fri, 11 Jun 2021 09:41:34 GMT):
If you need more sophisticated checks for liveness, I think the way to go would be if the agency periodically verifies connectivity to pgsql (or even better the ability to read and write) and redis (in case of client agency) and then reflect the results as liveness ( we could expand the response payload for `/api/health` endpoint)

PaulRps (Mon, 14 Jun 2021 20:54:40 GMT):
Has joined the channel.

PaulRps (Mon, 14 Jun 2021 20:54:41 GMT):
hi guys, i am learning how to use libvcx installed in an android mobile app. I would like to get some help, if you could help me, i will appreciate. My problem: I am getting a empty json field when i call DisclosedProofApi.proofRetrieveCredentials(proofHandle). I have followed the steps, on android mobile app, like alice demo app. Due vcx-agency-node does not have push/notification service, i have got the agent messages from vcx-agency-node in a Timer in background, i have put the method LibVcx.api.vcx_v2_messages_download in android SDK (.aar) interface to fetch all messages, so the credential offer and issue, proof request messages come from that added method. Settup I have launched/setup vcx-agency-node, aries-framework-dotnet (issuer agent) and von-network-master (pool) (all connected and running in docker containers) I got through the follwing steps until reached the problem: 1. The mobile app get connected to issuer agent (aries-framework-dotnet) successfuly (like in Alice demo code snipet) 2. On issuer agent web site, i have issued a credential to mobile app connection 3. On mobile app, the credential offer/issue messages have came from LibVcx.api.vcx_v2_messages_download and i have accepted (like in Alice demo code snipet) and saved in wallet (WalletApi.addRecordWallet) 4. On issuer agent web site, i have send a proof to mobile app connetion for issued credential 5. On mobile app, the proof request message has came from LibVcx.api.vcx_v2_messages_download and i have got proof request, created proof handle and called DisclosedProofApi.proofRetrieveCredentials(proofHandle).get(), but in the array json field attrs:[attribute_0...], the attribute value is empty for every requested attribute, this is the problem I have tested my custom android sdk (.aar) in Demo Alice App successfuly, i replaced the 'original' sdk for my custom with LibVcx.api.vcx_v2_messages_download method added, however i have not used that method there because the demo is very simple and does not need to fetch messages from agent. Now, i am trying to understand by reading the libvcx and indy rusty code, i have seen that in log: TRACE com.evernym.sdk.vcx.LibVcx.native.indy.commands.anoncreds.prover - src/commands/anoncreds/prover.rs:642 | fetch_credential_for_proof_request <<< requested_credentials_json: "[]" but i dont understand rusty very well and i dont know why that is happening. If you need more information, let me know.

PaulRps (Mon, 14 Jun 2021 20:54:41 GMT):
hi guys, i am learning how to use libvcx installed in an android mobile app. I would like to get some help, if you could help me, i will appreciate. My problem: I am getting a empty json field when i call DisclosedProofApi.proofRetrieveCredentials(proofHandle). I have followed the steps, on android mobile app, like alice demo app. Due vcx-agency-node does not have push/notification service, i have got the agent messages from vcx-agency-node in a Timer in background, i have put the method LibVcx.api.vcx_v2_messages_download in android SDK (.aar) interface to fetch all messages, so the credential offer and issue, proof request messages come from that added method. Settup I have launched/setup libvcx:0.17.0, vcx-agency-node, aries-framework-dotnet (issuer agent) and von-network-master (pool) (all connected and running in docker containers) I got through the follwing steps until reached the problem: 1. The mobile app get connected to issuer agent (aries-framework-dotnet) successfuly (like in Alice demo code snipet) 2. On issuer agent web site, i have issued a credential to mobile app connection 3. On mobile app, the credential offer/issue messages have came from LibVcx.api.vcx_v2_messages_download and i have accepted (like in Alice demo code snipet) and saved in wallet (WalletApi.addRecordWallet) 4. On issuer agent web site, i have send a proof to mobile app connetion for issued credential 5. On mobile app, the proof request message has came from LibVcx.api.vcx_v2_messages_download and i have got proof request, created proof handle and called DisclosedProofApi.proofRetrieveCredentials(proofHandle).get(), but in the array json field attrs:[attribute_0...], the attribute value is empty for every requested attribute, this is the problem I have tested my custom android sdk (.aar) in Demo Alice App successfuly, i replaced the 'original' sdk for my custom with LibVcx.api.vcx_v2_messages_download method added, however i have not used that method there because the demo is very simple and does not need to fetch messages from agent. Now, i am trying to understand by reading the libvcx and indy rusty code, i have seen that in log: TRACE com.evernym.sdk.vcx.LibVcx.native.indy.commands.anoncreds.prover - src/commands/anoncreds/prover.rs:642 | fetch_credential_for_proof_request <<< requested_credentials_json: "[]" but i dont understand rusty very well and i dont know why that is happening. If you need more information, let me know.

mirgee (Tue, 15 Jun 2021 10:57:36 GMT):
Hi @PaulRps , it sounds like the attributes of the issued credential do not match the attributes requested in the proof request, but the issue can be many places - can you please post the code you are using for issuing the credential and sending the proof request?

rjones (Tue, 15 Jun 2021 14:42:37 GMT):
Has left the channel.

PaulRps (Tue, 15 Jun 2021 17:10:36 GMT):

PaulRps - Tue Jun 15 2021 14:09:38 GMT-0300 (Brasilia Standard Time).txt

PaulRps (Tue, 15 Jun 2021 17:10:36 GMT):

PaulRps - Tue Jun 15 2021 14:09:38 GMT-0300 (Brasilia Standard Time).txt

PaulRps (Tue, 15 Jun 2021 17:10:36 GMT):

PaulRps - Tue Jun 15 2021 14:09:38 GMT-0300 (Brasilia Standard Time).txt

PaulRps (Tue, 15 Jun 2021 17:10:36 GMT):

PaulRps - Tue Jun 15 2021 14:09:38 GMT-0300 (Brasilia Standard Time).txt

PaulRps (Tue, 15 Jun 2021 17:10:36 GMT):

PaulRps - Tue Jun 15 2021 14:09:38 GMT-0300 (Brasilia Standard Time).txt

guilhermejd3p (Tue, 15 Jun 2021 18:05:02 GMT):
Has joined the channel.

PaulRps (Wed, 16 Jun 2021 02:07:58 GMT):
Hi @mirgee, i have found out the error, it was in credential flow (in holder), it missed to call CredentialApi.credentialUpdateStateV2, it did not before because i thougth like the issued credential message was got with base64 issued credential data, it did not need to check credential status. Thank you so much for trying to help me!

PaulRps (Wed, 16 Jun 2021 02:07:58 GMT):
Hi @mirgee, i have found out the error, it was in credential flow (in holder), it missed to call CredentialApi.credentialUpdateStateV2, it did not before because i thougth like the issued credential message (from LibVcx.api.vcx_v2_messages_download) was got with base64 issued credential data, it did not need to check credential status. Thank you so much for trying to help me!

guilhermejd3p (Tue, 29 Jun 2021 20:47:23 GMT):
hi guys, exist a possibility the integration do aries-vcx with firebase?

PatrikStas (Wed, 30 Jun 2021 10:13:43 GMT):
Hi, what would you like to use Firebase for?

guilhermejd3p (Wed, 30 Jun 2021 13:30:26 GMT):
yes, i would like to use firebase, i saw some ways to do this, but i would like a group view.

PatrikStas (Wed, 30 Jun 2021 13:47:19 GMT):
Well Firebase is whole platform with number of services, so I am still not quite sure what you are aiming to build. Is your question specifically regard https://github.com/hyperledger/aries-vcx/ library, or are you asking about Firebase in an Aries app in general?

guilhermejd3p (Wed, 30 Jun 2021 13:55:17 GMT):
I would like to implement Firebase Cloud Messaging, to use in libvcx

guilhermejd3p (Wed, 30 Jun 2021 13:56:29 GMT):
For communication between mediator and mobile app

PaulRps (Tue, 13 Jul 2021 13:40:40 GMT):
Hi guys, what is the best way (safest and fatest) to retrieve messages from mediator (vcx-agency-node). I've used utils.vcx_v2_messages_download but utils.vcx_messages_download

PaulRps (Tue, 13 Jul 2021 13:40:40 GMT):
Hi guys, what is the best way (safest and fatest) to retrieve messages from mediator (vcx-agency). I've used: `utils.vcx_v2_messages_download ` but at `utils.vcx_messages_download` there is the doc comment: #[deprecated(since = "0.12.0", note = "This is dangerous because downloaded messages are not \ authenticated and a message appearing to be received from certain connection might have been spoofed.")] So, it's not a big deal to use messages_download.

PaulRps (Tue, 13 Jul 2021 13:40:40 GMT):
Hi guys, what is the best way (safest and fatest) to retrieve messages from mediator (vcx-agency).? I've used: `utils.vcx_v2_messages_download ` but at `utils.vcx_messages_download` there is the doc comment: #[deprecated(since = "0.12.0", note = "This is dangerous because downloaded messages are not \ authenticated and a message appearing to be received from certain connection might have been spoofed.")] So, it's not a big deal to use messages_download.

PaulRps (Tue, 13 Jul 2021 13:40:40 GMT):
Hi guys, what is the best way (safest and fatest) to retrieve messages from mediator (vcx-agency)? I've used: `utils.vcx_v2_messages_download ` but at `utils.vcx_messages_download` there is the doc comment: #[deprecated(since = "0.12.0", note = "This is dangerous because downloaded messages are not \ authenticated and a message appearing to be received from certain connection might have been spoofed.")] So, it's not a big deal to use messages_download.

thomas_kim (Thu, 15 Jul 2021 06:46:56 GMT):

Clipboard - July 15, 2021 3:46 PM

thomas_kim (Thu, 15 Jul 2021 06:47:44 GMT):
We implemented this in this way.

mirgee (Thu, 15 Jul 2021 10:45:54 GMT):
Hi Paul, I am not sure I understand your question correctly, but as the doc comment says, the sender of messages downloaded via `vcx_messages_download` is not being verified, so there is a danger of a man-in-the-middle attack. We recommend using `vcx_v2_messages_download`, and `vcx_messages_download` will be removed soon.

PaulRps (Fri, 16 Jul 2021 15:12:19 GMT):
Hi @mirgee, thanks for answer me. I'm sorry because i did not explain my question before, it is about get messages from agency, so i've used Nodejs agency (https://github.com/AbsaOSS/vcxagencynode/blob/a1778e9fa2/vcxagency-node/README.md) as mediator for a android app. I've added manually the method `vcx_v2_messages_download` because it was not put in UtilsApi (https://github.com/hyperledger/aries-vcx/blob/master/wrappers/java/src/main/java/com/evernym/sdk/vcx/utils/UtilsApi.java). I just have seen and it is still missing. If i missed understand something or you need more details, let me know.

PaulRps (Fri, 16 Jul 2021 15:12:19 GMT):
Hi @mirgee, thanks for answer me. I'm sorry because i did not explain my question before, it is about get messages from agency, so i've used Nodejs agency (https://github.com/AbsaOSS/vcxagencynode/blob/a1778e9fa2/vcxagency-node/README.md) as mediator for a android app. I've added manually the method `vcx_v2_messages_download` because it was not put in UtilsApi (https://github.com/hyperledger/aries-vcx/blob/master/wrappers/java/src/main/java/com/evernym/sdk/vcx/utils/UtilsApi.java). I just have seen and it is still missing. If i missed understand something or you need more details, let me know. Many thanks.

mirgee (Fri, 16 Jul 2021 20:15:13 GMT):
Hi @PaulRps, I see what you mean now. First of all, thank you for pointing out that `vcx_v2_messages_download` is missing in the Java wrapper! Indeed, that is a mistake on our part - we probably just forgot to add it. If you added it manually yourself, we would very much appreciate if you opened a PR and shared your contribution!

PaulRps (Fri, 16 Jul 2021 21:55:46 GMT):
Hi @mirgee, it will be nice to contribute to project. I'm going to understand the PR rules and i,m going to open. Thanks again!

PaulRps (Fri, 16 Jul 2021 21:55:46 GMT):
Hi @mirgee, it will be nice to contribute to project. I'm going to understand the PR rules and i'm going to open it. Thanks again!

aspannag (Mon, 26 Jul 2021 11:53:19 GMT):
Has joined the channel.

aspannag (Tue, 27 Jul 2021 08:56:34 GMT):
Quick question to the vcx folks: We plan to build an ios mobile agent based on aries-vcx that talks to a mediator agent. how do I decide between libindy and libvcx based frameworks for the mediator. What is there to consider? Can I use the Node VCX Agency production? How does it compare to an ACA-Py or Aries-Framework-Javascript mediator agent?

mirgee (Wed, 28 Jul 2021 11:04:41 GMT):
Hi @aspannag and welcome :) Libindy is a low-level library mainly for things like creating and submitting particular ledger requests and wallet creation / reads / writes / export / import, etc. AFJS, AFGo, ACAPy and aries-vcx are higher-level libraries for writing mobile (i.e holder-side / prover-side agents) and enterprise (i.e. issuer-side / verifier-side) agents. We would definitely recommend one of the latter ones if you are to build an iOS mobile agent rather than reinvent the wheel by using libindy directly. As for the differences between the frameworks, the first thing to realize is that they all have iOS bindings (except ACAPy, AFAIK) and are all mutually interoperable, so it probably depends mostly on which API fits your use-case the most. They also offer slightly different functionality - AFJS, for example, does not offer revocations yet (as they focus mostly on mobile agents), whereas aries-vcx does (as we try to strike a balance of functionality for both mobile and enterprise). I would recommend you try some of them out and see which you like the best. We are happy to help with any aries-vcx-related questions you may have :) Node VCX Agency is a pure, lightweight and performant mediator agent, and can definitely be used in production (we do). Hope that answers your questions somewhat :)

mirgee (Wed, 28 Jul 2021 11:04:41 GMT):
Hi @aspannag and welcome :) Libindy is a low-level library mainly for things like creating and submitting particular ledger requests and wallet creation / reads / writes / export / import, etc. AFJS, AFGo, ACAPy and aries-vcx are higher-level libraries for writing mobile (i.e holder-side / prover-side agents) and enterprise (i.e. issuer-side / verifier-side) agents. We would definitely recommend one of the latter ones if you are to build an iOS mobile agent rather than reinvent the wheel by using libindy directly. As for the differences between the frameworks, the first thing to realize is that they all have iOS bindings (except ACAPy, AFAIK) and are all mutually interoperable, so it probably depends mostly on which API fits your use-case the most. They also offer slightly different functionality - AFJS, for example, does not offer revocations yet (as they focus mostly on mobile agents), whereas aries-vcx does (as we try to strike a balance of functionality for both mobile and enterprise). I would recommend you try some of them out and see which you like the best. We are happy to help with any aries-vcx-related questions you may have :) Node VCX Agency is a pure, lightweight and performant mediator agent, and can definitely be used in production (we do so). Hope that answers your questions somewhat :)

aspannag (Wed, 28 Jul 2021 17:09:05 GMT):
Hi @mirgee and thanks for the detailed explanation. We want to write a native ios app so are already decided that we'd like to implement the wallet functinality with aries vcx. We are now assesing if it matters which framework we use to deploy the mediator agent for the communication with the issuers/verifiers and the mobile wallet. We care about four things: - AIP 2.0 Mediation RFCs are supported or will be supported soon: RFCs 0211 and 0212 - Documentation and ease of setup - Performance and Scaling - Security I can't quite yet say if vcx checks all the boxes. We were a bit hesitant because it seemed new and experimental (See here: https://github.com/hyperledger/indy-sdk/blob/master/vcx/README.md). And the On a related note, allow me to give my opinion. It took me quite some time to understand that vcx is a framework on the same level and therefore comparable to AFJS, AFGo and ACAPy. I was really confused by the fact that libvcx is a library and the docs say that aries vcx is a spin off of previously known libvcx. It also doesn't help that the docs say that it is an experimental library :slight_smile: I certaily recommend for vcx to get mentioned/explained on the aries overview page that every newcomer visits first: https://github.com/hyperledger/aries

aspannag (Wed, 28 Jul 2021 17:09:05 GMT):
Hi @mirgee and thanks for the detailed explanation. We want to write a native ios app so are already decided that we'd like to implement the wallet functinality with aries vcx. We are now assesing if it matters which framework we use to deploy the mediator agent for the communication with the issuers/verifiers and the mobile wallet. We care about four things: - AIP 2.0 Mediation RFCs are supported or will be supported soon: RFCs 0211 and 0212 - Documentation and ease of setup - Performance and Scaling - Security I can't quite yet say if vcx checks all the boxes. We were a bit hesitant because it seemed experimental (See here: https://github.com/hyperledger/indy-sdk/blob/master/vcx/README.md). On a related note, allow me to give my opinion. It took me quite some time to understand that vcx is a framework on the same level and therefore comparable to AFJS, AFGo and ACAPy. I was really confused by the fact that libvcx is a library and the docs say that aries vcx is a spin off of previously known libvcx. It also doesn't help that the docs say that it is an experimental library :slight_smile: I certaily recommend for vcx to get mentioned/explained on the aries overview page that every newcomer visits first: https://github.com/hyperledger/aries

aspannag (Wed, 28 Jul 2021 17:09:05 GMT):
Hi @mirgee and thanks for the detailed explanation. We want to write a native ios app so are already decided that we'd like to implement the wallet functinality with aries vcx. We are now assesing if it matters which framework we use to deploy the mediator agent for the communication with the issuers/verifiers and the mobile wallet. We care about four things: - AIP 2.0 Mediation RFCs are supported or will be supported soon: RFCs 0211 and 0212 - Documentation and ease of setup - Performance and Scaling - Security I can't quite yet say if vcx checks all the boxes. We were a bit hesitant because it seemed experimental (See here: https://github.com/hyperledger/indy-sdk/blob/master/vcx/README.md). On a related note, allow me to give a recommendation. It took me quite some time to understand that vcx is a framework on the same level and therefore comparable to AFJS, AFGo and ACAPy. I was really confused by the fact that libvcx is a library and the docs say that aries vcx is a spin off of previously known libvcx. It also doesn't help that the docs say that it is an experimental library :slight_smile: I certaily recommend for vcx to get mentioned/explained on the aries overview page that every newcomer visits first: https://github.com/hyperledger/aries

aspannag (Wed, 28 Jul 2021 17:09:05 GMT):
Hi @mirgee and thanks for the detailed explanation. We want to write a native ios app so are already decided that we'd like to implement the wallet functinality with aries vcx. We are now assesing if it matters which framework we use to deploy the mediator agent for the communication with the issuers/verifiers and the mobile wallet. We care about four things: - AIP 2.0 Mediation RFCs are supported or will be supported soon: RFCs 0211 and 0212 - Documentation and ease of setup - Performance and Scaling - Security I can't quite yet say if vcx checks all the boxes. We were a bit hesitant because it seemed experimental (See here: https://github.com/hyperledger/indy-sdk/blob/master/vcx/README.md). On a related note, allow me to give a recommendation. It took me quite some time to understand that vcx is a framework on the same level and therefore comparable to AFJS, AFGo and ACAPy. I was really confused by the fact that libvcx is a library and the docs say that aries vcx is a spin off of previously known libvcx. It also doesn't help that the docs say that it is an experimental library :slight_smile: I certaily recommend for vcx to get mentioned/explained on the aries overview page that every newcomer visits first: https://github.com/hyperledger/aries

aspannag (Wed, 28 Jul 2021 17:09:05 GMT):
Hi @mirgee and thanks for the detailed explanation. We want to write a native ios app so are already decided that we'd like to implement the wallet functinality with aries vcx. We are now assesing if it matters which framework we use to deploy the mediator agent for the communication with the issuers/verifiers and the mobile wallet. We care about four things: - AIP 2.0 Mediation RFCs are supported or will be supported soon: RFCs 0211 and 0212 - Documentation and ease of setup - Performance and Scaling - Security I can't say yet if vcx checks all the boxes for us. We were a bit hesitant because it seemed experimental (See here: https://github.com/hyperledger/indy-sdk/blob/master/vcx/README.md). On a related note, allow me to give a recommendation. It took me quite some time to understand that vcx is a framework on the same level and therefore comparable to AFJS, AFGo and ACAPy. I was really confused by the fact that libvcx is a library and the docs say that aries vcx is a spin off of previously known libvcx. It also doesn't help that the docs say that it is an experimental library :slight_smile: I certaily recommend for vcx to get mentioned/explained on the aries overview page that every newcomer visits first: https://github.com/hyperledger/aries

aspannag (Wed, 28 Jul 2021 17:09:05 GMT):
Hi @mirgee and thanks for the detailed explanation. We want to write a native ios app so are already decided that we'd like to implement the wallet functinality with aries vcx. We are now assesing if it matters which framework we use to deploy the mediator agent for the communication with the issuers/verifiers and the mobile wallet. We care about four things: - AIP 2.0 Mediation RFCs are supported or will be supported soon: RFCs 0211 and 0212 - Documentation and ease of setup - Performance and Scaling - Security I can't say yet if vcx checks all the boxes for us. We were a bit hesitant because it seemed experimental (See here: https://github.com/hyperledger/indy-sdk/blob/master/vcx/README.md).

aspannag (Wed, 28 Jul 2021 17:17:38 GMT):
Going forward I'd like to dig deeper into a mediator setup with vcx. Am I correct in my understanding that there are two starting points? A rust setup with the dummy-cloud-agent and a node setup with the previously mentioned node vcx agency? Is there a mediator setup based on a python wrapper, too? What's the difference between the node vcx agency and a simple node agent (that might be configurable to be a mediator)?

aspannag (Wed, 28 Jul 2021 17:17:38 GMT):
Going forward I'd like to dig deeper into a mediator setup with vcx. - Am I correct in my understanding that there are two starting points? A rust setup with the dummy-cloud-agent and a node setup with the previously mentioned node vcx agency? - Is there a mediator setup based on a python wrapper, too? - What's the difference between the node vcx agency and a simple node agent (that might be configurable to be a mediator)?

aspannag (Wed, 28 Jul 2021 17:17:38 GMT):
Going forward I'd like to dig deeper into a mediator setup with vcx. - Am I correct in my understanding that there are two starting points? A rust setup with the dummy-cloud-agent and a node setup with the previously mentioned node vcx agency? - Is there a mediator setup based on a python wrapper, too? - What are the advantages of the node vcx agency vs. AFJS with `yarn run-mediator`` - What's the difference between the node vcx agency and a simple node agent (that might be configurable to be a mediator)?

aspannag (Wed, 28 Jul 2021 17:17:38 GMT):
Going forward I'd like to dig deeper into a mediator setup with vcx. - Am I correct in my understanding that there are two starting points? A rust setup with the dummy-cloud-agent and a node setup with the previously mentioned node vcx agency? - Is there a mediator setup based on a python wrapper, too? - What are the advantages of the node vcx agency vs. AFJS with `yarn run-mediator`` - What's the difference between the node vcx agency and a simple node agent as can be found here: https://github.com/hyperledger/aries-vcx/tree/38104fb58fc7067352f788bf9b8bad52a07fd469/agents/node/vcxagent-core

aspannag (Wed, 28 Jul 2021 17:17:38 GMT):
Going forward I'd like to dig deeper into a mediator setup with vcx. - Am I correct in my understanding that there are two starting points? A rust setup with the dummy-cloud-agent and a node setup with the previously mentioned node vcx agency? - Is there a mediator setup based on a python wrapper, too? - What are the advantages of the node vcx agency vs. AFJS with `yarn run-mediator`` - What's the difference between the node vcx agency and a simple node agent as can be found here: https://github.com/hyperledger/aries-vcx/tree/38104fb58fc7067352f788bf9b8bad52a07fd469/agents/node/vcxagent-core - And why is it that vcx requires a mediator while the other frameworks offer one out of the box?

aspannag (Wed, 28 Jul 2021 17:30:45 GMT):
On a related note, allow me to give a recommendation. It took me quite some time to understand that vcx is a framework on the same level and therefore comparable to AFJS, AFGo and ACAPy. I was really confused by the fact that libvcx is a library and the docs say that aries vcx is a spin off of previously known libvcx. It also doesn't help that the docs say that it is an experimental library 🙂 I certaily recommend for vcx to get mentioned/explained on the aries overview page that every newcomer visits first: https://github.com/hyperledger/aries I also recommend to only have one source of truth where you document aries vcx. Currently I see that some parts of the documentation are at `hyperledger / aries-vcx` while other parts of the documentation live at hyperledger / indy-sdk / vcx

aspannag (Wed, 28 Jul 2021 17:30:45 GMT):
On a related note, allow me to give a recommendation. It took me quite some time to understand that vcx is a framework on the same level and therefore comparable to AFJS, AFGo and ACAPy. - I was really confused by the fact that libvcx is a library and the docs say that aries vcx is a spin off of libvcx. - It also doesn't help that the docs say that it is an experimental library 🙂 - I certaily recommend for vcx to get mentioned/explained on the aries overview page that every newcomer visits first: https://github.com/hyperledger/aries - I also think it would be helpful to have only have one source of truth where the documention lives. Currently I see that some parts of documentation are at `hyperledger / aries-vcx` while other parts of (maybe outdated?) documentation live at hyperledger / indy-sdk / vcx

aspannag (Wed, 28 Jul 2021 17:30:45 GMT):
On a related note, allow me to give a recommendation. It took me quite some time to understand that vcx is a framework on the same level and therefore comparable to AFJS, AFGo and ACAPy. - I was really confused by the fact that libvcx is a library and the docs say that aries vcx is a spin off of libvcx. - It also doesn't help that the docs say that it is an experimental library 🙂 - I certaily recommend for vcx to get mentioned/explained on the aries overview page that every newcomer visits first: https://github.com/hyperledger/aries - I also think it would be helpful to have only have one source of truth where the documention lives. Currently I see that some parts of documentation are at `hyperledger / aries-vcx` while other parts of (maybe outdated?) documentation live at `hyperledger / indy-sdk / vcx`

mirgee (Wed, 28 Jul 2021 18:57:12 GMT):
@aspannag Firstly, please, forget about dummy-cloud-agency and the vcx directory in indy-sdk repo you posted a link to. These are deprecated and should have been removed from the repo a long time ago. Come to think of it, I will probably create a PR removing them so it doesn't confuse more people. I just want to make sure you understand that aries-vcx is not a cloud agent (mediator agency), such as the node vcx agency. The core vcx agent, on the other hand, is an even a higher-level implementation above aries-vcx on top of nodejs wrapper. If you are looking for a mediator agency to pair with aries-vcx, you don't have to look further than for the node vcx agency. As I said, it is very performant, secure, and we provide support for it. As for why it's separate - in short, it forces separation of concerns with all its benefits such as smaller codebase, faster compile times, and, importantly, it allows mediator and enterprise deployments to scale independantly. Sincerely, thank you for your recommendations! Taking a note here. The fact that aries-vcx is not on the aries readme is an abomination we'll make sure to fix that. To repeat myself, I am not sure what distinction is there in your mind between vcx, libvcx and aries-vcx (if any), but please, forget about the mess in the indy-sdk repo.

mirgee (Wed, 28 Jul 2021 18:57:12 GMT):
@aspannag Firstly, please, forget about dummy-cloud-agency and the vcx directory in indy-sdk repo you posted a link to. These are deprecated and should have been removed from the repo a long time ago. Come to think of it, I will probably create a PR removing them so it doesn't confuse more people. I just want to make sure you understand that aries-vcx is not a cloud agent (mediator agency), such as the node vcx agency, and even not a "framework to build one". The core vcx agent, on the other hand, is an even a higher-level implementation above aries-vcx on top of nodejs wrapper. If you are looking for a mediator agency to pair with aries-vcx, you don't have to look further than for the node vcx agency. As I said, it is very performant, secure, and we provide support for it. As for why it's separate - in short, it forces separation of concerns with all its benefits such as smaller codebase, faster compile times, and, importantly, it allows mediator and enterprise deployments to scale independantly. Sincerely, thank you for your recommendations! Taking a note here. The fact that aries-vcx is not on the aries readme is an abomination we'll make sure to fix that. To repeat myself, I am not sure what distinction is there in your mind between vcx, libvcx and aries-vcx (if any), but please, forget about the mess in the indy-sdk repo.

mirgee (Wed, 28 Jul 2021 18:57:12 GMT):
@aspannag Firstly, please, forget about dummy-cloud-agency and the vcx directory in indy-sdk repo you posted a link to. These are deprecated and should have been removed from the repo a long time ago. Come to think of it, I will probably create a PR removing them so it doesn't confuse more people. I just want to make sure you understand that aries-vcx is not a cloud agent (mediator agency), such as the node vcx agency, and even not a "framework to build one". The core vcx agent, on the other hand, is an even a higher-level implementation above aries-vcx on top of nodejs wrapper. If you are looking for a mediator agency to pair with aries-vcx, you don't have to look further than for the node vcx agency. As I said, it is very performant, secure, and we can provide support for it. As for why it's separate - in short, it forces separation of concerns with all its benefits such as smaller codebase, faster compile times, and, importantly, it allows mediator and enterprise deployments to scale independantly. Sincerely, thank you for your recommendations! Taking a note here. The fact that aries-vcx is not on the aries readme is an abomination we'll make sure to fix that. To repeat myself, I am not sure what distinction is there in your mind between vcx, libvcx and aries-vcx (if any), but please, forget about the mess in the indy-sdk repo.

mirgee (Wed, 28 Jul 2021 18:57:12 GMT):
@aspannag Firstly, please, forget about dummy-cloud-agency and the vcx directory in indy-sdk repo you posted a link to. These are deprecated and should have been removed from the repo a long time ago. Come to think of it, I will probably create a PR removing them so it doesn't confuse more people. I just want to make sure you understand that aries-vcx is not a cloud agent (mediator agency), such as the node vcx agency, and even not a "framework to build one". The core vcx agent, on the other hand, is an even a higher-level implementation above aries-vcx on top of nodejs wrapper, mainly for the issuer / verifier. If you are looking for a mediator agency to pair with aries-vcx, you don't have to look further than for the node vcx agency. As I said, it is very performant, secure, and we can provide support for it. As for why it's separate - in short, it forces separation of concerns with all its benefits such as smaller codebase, faster compile times, and, importantly, it allows mediator and enterprise deployments to scale independently. Sincerely, thank you for your recommendations! Taking a note here. The fact that aries-vcx is not on the aries readme is an abomination we'll make sure to fix that. To repeat myself, I am not sure what distinction is there in your mind between vcx, libvcx and aries-vcx (if any), but please, forget about the mess in the indy-sdk repo.

mirgee (Wed, 28 Jul 2021 19:05:58 GMT):
As the author of the node vcx agency, wanna chime in, @PatrikStas ? :)

aspannag (Wed, 28 Jul 2021 19:22:42 GMT):
Thanks @mirgee that really clears things up. It does sound like vcx could what we are looking for. It's a shame that the information is not more readiliy available in the docs of the hyperledger repositories. I think what you suggest would help newcomers greatly. A `Why VCX?` section could be great for developers and IT managers to help decide which framework to use. So far I compiled the following advantages and disadvantages for us: - Fast - Secure - Exposable in multiple languages via wrappers -> can be used in both frontend and the server - Actively maintained - Rather difficult to contribute if needed (writing rust is hard and writing wrappers could be tedious) Is that about right? I think we will start experimenting shortly with vcx. That will probably clear things up even more.

aspannag (Wed, 28 Jul 2021 19:47:46 GMT):
> I just want to make sure you understand that aries-vcx is not a cloud agent (mediator agency), such as the node vcx agency, and even not a "framework to build one". So in a nutshell what is vcx if not a framework? I thought agent is built on with a framework that includes the core aries functionalities and the controller where the business logic lives. Where does vcx fit in here?

aspannag (Wed, 28 Jul 2021 19:47:46 GMT):
> I just want to make sure you understand that aries-vcx is not a cloud agent (mediator agency), such as the node vcx agency, and even not a "framework to build one". So in a nutshell what is vcx if not a framework? I thought an agent is built on with a framework that includes the core aries functionalities and the controller where the business logic lives. Where does vcx fit in here?

mirgee (Wed, 28 Jul 2021 20:10:09 GMT):
@aspannag Thanks for the `Why aries-vcx` suggestion. Definitely see how it could help. I don't know what you mean by framework (I should have used that word). You said correctly it is "on the same level" as AFJS, AFGo, ACAPy, etc. My point is it is not a mediator agent, does not serve for writing mediator agents. It uses them to receive messages (mediator agency is highly available, unlike a mobile phone), and to send messages to. It is similar to a mail server. Hope this helps.

mirgee (Wed, 28 Jul 2021 20:10:09 GMT):
@aspannag Thanks for the `Why aries-vcx` suggestion. Definitely see how it could help. I don't know what you mean by framework (I should have used that word). You said correctly it is "on the same level" as AFJS, AFGo, ACAPy, etc. My point is it is not a mediator agent, does not serve for writing mediator agents. It uses them to receive messages (mediator agency is highly available, unlike a mobile phone), and to send messages to. Mediator agent is similar to a mail server (in terms of functionality). Hope this helps.

mirgee (Wed, 28 Jul 2021 20:10:09 GMT):
@aspannag Thanks for the `Why aries-vcx` suggestion. Definitely see how it could help. I don't know what you mean by framework (I should have used that word). You said correctly aries-vcx is "on the same level" (in terms of abstraction) as AFJS, AFGo, ACAPy, etc. My point is it is not a mediator agent, does not serve for writing mediator agents. It uses them to receive messages (mediator agency is highly available, unlike a mobile phone), and to send messages to. Mediator agent is similar to a mail server (in terms of functionality). Hope this helps.

mirgee (Wed, 28 Jul 2021 20:10:09 GMT):
@aspannag Thanks for the `Why aries-vcx` suggestion. Definitely see how it could help. I don't know what you mean by framework (I should have used that word). You said correctly aries-vcx is "on the same level" (in terms of abstraction) as AFJS, AFGo, ACAPy, etc. My point is it is not a mediator agent, does not serve for writing mediator agents. It uses them to receive messages (mediator agency is highly available, unlike a mobile phone), and to send messages to. Mediator agent is similar to a mail server (in terms of functionality). Hope this helps.

mirgee (Wed, 28 Jul 2021 20:10:09 GMT):
@aspannag Thanks for the `Why aries-vcx` suggestion. Definitely see how it could help. I don't know what you mean by framework (I should have used that word). You said correctly aries-vcx is "on the same level" (in terms of abstraction) as AFJS, AFGo, ACAPy, etc. My point is it is not a mediator agent, does not serve for writing mediator agents. It uses them to receive messages (mediator agency is highly available, unlike a mobile phone), and to send messages to. Mediator agent is similar to a mail server (in terms of functionality). You don't need "a framework" (in the above sense) to write it. It is a separate service. Hope this helps.

mirgee (Wed, 28 Jul 2021 20:10:09 GMT):
@aspannag Thanks for the `Why aries-vcx` suggestion. Definitely see how it could help. I don't know what you mean by framework (I should have used that word). You said correctly aries-vcx is "on the same level" (in terms of abstraction) as AFJS, AFGo, ACAPy, etc. My point is it is not a mediator agent, does not serve for writing mediator agents. It uses them to receive messages (mediator agency is highly available, unlike a mobile phone), and to send messages to. Mediator agent is similar to a mail server (in terms of functionality). You don't need "a framework" (in the above sense) to write it. Hope this helps.

PatrikStas (Thu, 29 Jul 2021 08:33:20 GMT):
@mirgee great work shedding some light on the repo, I think those were great answers. Perhaps we can setup a call, in fact we should probably start biweekly calls just like other aries frameworks do. How about we do first sort of unofficial community call on Monday or Tuesday? Would that work for you @aspannag ? What's the good time for you? Wee are based in Europe

aspannag (Fri, 30 Jul 2021 08:52:25 GMT):

Clipboard - 30. Juli 2021 10:52

aspannag (Fri, 30 Jul 2021 08:52:42 GMT):

Clipboard - 30. Juli 2021 10:52

aspannag (Fri, 30 Jul 2021 08:57:22 GMT):
@mirgee when talking about frameworks I am referring to these. AFJ, AFGo, ACA-Py are all frameworks in this sense (it's even included in the name: aries."framework"-javascript).

PatrikStas (Fri, 30 Jul 2021 08:58:45 GMT):
Looks like acapy architecture, where did you find these images? But no, this is not accurate representation of aries-vcx, it's somewhat lower level. I guess you can think of aries-vcx more as a "library" implementing aries protocols on top of indy, but not as "framework". It's possible to build 2nd pic. architecture on top of aries-vcx

aspannag (Fri, 30 Jul 2021 08:58:58 GMT):
@PatrikStas thanks for the invitation. I'd like to join. I am available on tuesday and I'd like to bring my colleague who started implementing vcx yesterday in a native ios app environment.

PatrikStas (Fri, 30 Jul 2021 09:00:41 GMT):
for sure, sounds great! :-) How about Tuesday 13:00 UTC?

aspannag (Fri, 30 Jul 2021 09:00:53 GMT):
@PatrikStas you are precicely right. this is the aca-py architecture.

aspannag (Fri, 30 Jul 2021 09:03:56 GMT):
Alright, maybe that's why vcx wasn't mentioned on the hyperledger/aries github page, because it's not an aries agent framework.

aspannag (Fri, 30 Jul 2021 09:19:16 GMT):
[ ](https://chat.hyperledger.org/channel/aries-vcx?msg=zhd3WCJBnXuDpmFC9) Sounds great. We are europe based, too, so that suits us well.

PatrikStas (Fri, 30 Jul 2021 09:21:56 GMT):
If you don't mind I'll post a link for the call here publicly so anyone can join. Is that okay?

aspannag (Fri, 30 Jul 2021 09:23:48 GMT):
Well if not, would it really be a community meeting? :slight_smile:

PatrikStas (Fri, 30 Jul 2021 09:24:30 GMT):
Yeah exactly :-)

aspannag (Fri, 30 Jul 2021 10:59:36 GMT):
I can't seem to install indy-sdk as dependency for vcxagency-node on mac with node@12.22.4. It seems to be related to a deprecation error that gyp outputs to the console. Shall I quickly copy&paste the error here or go ahead and create an issue in github?

PatrikStas (Fri, 30 Jul 2021 13:47:34 GMT):
You can paste it here, I'll take a look

aspannag (Fri, 30 Jul 2021 13:59:00 GMT):
I fixed it by following the suggestions in this issue: https://jira.hyperledger.org/browse/IS-978

aspannag (Fri, 30 Jul 2021 14:00:31 GMT):
I had to clone the indy-sdk repository, build libindy and copy `libindy.dylib` into `/usr/local/lib`

aspannag (Fri, 30 Jul 2021 14:05:35 GMT):
It was written in the docs actually but I overlooked it

aspannag (Fri, 30 Jul 2021 14:05:36 GMT):
https://github.com/AbsaOSS/vcxagencynode/blob/master/vcxagency-node/README.md

aspannag (Fri, 30 Jul 2021 14:06:15 GMT):
`Make sure you have built IndySDK pgsql wallet plugin and make sure it's in your system's library directory (/usr/local/lib for Mac, /usr/lib for Linux).`

aspannag (Fri, 30 Jul 2021 14:07:00 GMT):
ah no, that's the pgsql wallet wallet...

aspannag (Fri, 30 Jul 2021 14:07:00 GMT):
ah no, that's the pgsql wallet...

PatrikStas (Fri, 30 Jul 2021 14:07:09 GMT):
oh great :-) That's funny because it's the issue I've created when I first started work with indy-sdk in. We've run into same issue

PatrikStas (Fri, 30 Jul 2021 14:07:58 GMT):
Yeah you just need to do the same thing with the pgsql plugin as you did with libindy

PatrikStas (Fri, 30 Jul 2021 14:08:56 GMT):
Fyi you can also just run agency local in docker image we build in CI https://github.com/AbsaOSS/vcxagencynode/pkgs/container/vcxagencynode%2Fvcxagency-node

aspannag (Fri, 30 Jul 2021 14:14:59 GMT):
[ ](https://chat.hyperledger.org/channel/aries-vcx?msg=jaGWfdELBvfeApXXE) Yes, that would have been my fallback solution.

aspannag (Fri, 30 Jul 2021 14:15:37 GMT):
[ ](https://chat.hyperledger.org/channel/aries-vcx?msg=yvwhvMmZ5EfZfxjbY) Maybe we can add to the docs that the same applies to indy-sdk and not only to the pgsql wallet plugin.

PatrikStas (Fri, 30 Jul 2021 14:17:06 GMT):
Yeah that sounds good, would you mind to create PR with that update?

PatrikStas (Mon, 02 Aug 2021 13:16:03 GMT):
Hi @aspannag I am sorry, due personal situation I can't make it at 13:00TC tomorrow. We can shift it earlier, somewhere between 08:00UTC - 11:00UTC or alternatively Wednesday 13:00UTC. I am sorry for inconvenience. What do you think?

guilhermejd3p (Mon, 02 Aug 2021 13:25:21 GMT):
great job!

aspannag (Mon, 02 Aug 2021 19:13:02 GMT):
@PatrikStas Wednesday 13:00UTC sounds great. Looking forward to the meetup :slight_smile:

PatrikStas (Wed, 04 Aug 2021 08:17:11 GMT):
Today we'll be our first community call, anyone is invited to join and participate - it's gonna be q&a/open discussion format. Topic: Aries VCX call Time: Aug 4, 2021 13:00 UTC Join Zoom Meeting https://us04web.zoom.us/j/77760578475?pwd=NnV2OFN5S2tRczJHZFhGUlZvc2Iydz09 Meeting ID: 777 6057 8475 Passcode: 1LHnXs

agentcooper75 (Tue, 10 Aug 2021 06:45:45 GMT):
Has joined the channel.

agentcooper75 (Tue, 10 Aug 2021 07:13:12 GMT):
Hi, After mastering provisioning for a mobile iOS agent (with the help of Patrik) I continuing to my next lesson: Connections. I have added some connections via „connectionCreateWithInvite“ to my wallet by using „addRecordWallet“. 1.If I would build a UI that lists all connections from my wallet, what would be the best way to do so? I found „openSearchWallet(recordType: "connection“) which does the job. Is this the preferred way? Here I run into a few issues with the output of „searchNextRecordsWallet“ - „tags“ always shows „null“ (after adding some custom tags) - „type“ is always „null“ The type would be needed if I would add an option to delete the record from the list „deleteRecordWallet:recordType“? 2.I am constantly adding new connections (same inviter) to my wallet. How would I avoid that. What would be a good workflow to tell the user that a connection already exists. Thanks

agentcooper75 (Tue, 10 Aug 2021 07:13:12 GMT):
Hi, After mastering provisioning for a mobile iOS agent (with the help of Patrik) I continuing to my next lesson: Connections. I have added some connections via „connectionCreateWithInvite“ to my wallet by using „addRecordWallet“. 1.If I would build a UI that lists all connections from my wallet, what would be the best way to do so? I found „openSearchWallet(recordType: "connection“) which does the job. Is this the preferred way? 2.I am constantly adding new connections (same inviter) to my wallet. How would I avoid that. What would be a good workflow to tell the user that a connection already exists. Thanks

agentcooper75 (Tue, 10 Aug 2021 13:44:33 GMT):
Figured out the "null" values from openSearchWallet by using the "optionsJson"

PatrikStas (Tue, 10 Aug 2021 14:44:25 GMT):
Hi Agent :-) Great questions. So for storing serialized connections - you don't neccesarily have to store them in wallet at all. A serialized connection might look like this: ``` { "version" : "1.0", "data" : { "pw_did" : "AJ8DfiB8kLqpW3UQC4BL62", "pw_vk" : "64qndyQa7ZQdGS2rL2rxrXggiK3aQCFUqJ9impYXvt6s", "agent_did" : "MXbV4NG5Bb6McXgaxjJEEP", "agent_vk" : "CBv3N9udAsJur2rjTTYbE7XBhYbzrpwdzq1KjuN1eHBL" }, "state" : { "Inviter" : { "Invited" : { "invitation" : { "@id" : "f0483f60-52ea-41bd-b575-61fdc550ee64", "label" : "f093572b-ad3f-45ff-ae71-18a37e8eb26d", "recipientKeys" : [ "64qndyQa7ZQdGS2rL2rxrXggiK3aQCFUqJ9impYXvt6s" ], "routingKeys" : [ "CBv3N9udAsJur2rjTTYbE7XBhYbzrpwdzq1KjuN1eHBL", "Hezce2UWMZ3wUhVkh2LfKSs8nDzWwzs2Win7EzNN3YaR" ], "serviceEndpoint" : "http://127.0.0.1:8080/agency/msg" } } } }, "source_id" : "f093572b-ad3f-45ff-ae71-18a37e8eb26d" } ``` so we have `data` which relates to pairwise dids and associated keys with the connection counterparty (pw_did, pw_vk) and mediator agent data for this connection (agent_did, agent_vk). Then in `state`, that's state machine for aries protocol, identifying current connection state and storing information about the counterparty. The data could be perhaps misused in some way by an attacker, it's also not sensitive to a degree it would contain private keys. Storing it in the wallet using the `addRecordWallet ` is an option, but it's not necessary. It's up to consumer of `libvcx` / `aries-vcx` to choose where to store serialized objects - it can be the wallet, keychain or whatever fits your needs.

PatrikStas (Tue, 10 Aug 2021 15:02:55 GMT):
As for the 2nd question - currently it's up to you to identify duplicates - you can for example do it by reusing existing connection based on `label` value. Thats' however more of a workaround than proper solution. The real solution is would be however based on public did based invitation (example here https://github.com/hyperledger/aries-rfcs/blob/master/features/0160-connection-protocol/README.md#0-invitation-to-connect ) and out of band protocol https://github.com/hyperledger/aries-rfcs/tree/master/features/0434-outofband. These are in fact the 2 main items on our roadmap protocol-wise, targeting to get these done by the end of the year.

PatrikStas (Thu, 19 Aug 2021 12:51:34 GMT):
@all important announcement - we have decided to move on from Hyperledger Libindy to its fork VDR-Tools. Evernym was the original author and the main maintainer of libindy, however they have decided to continue development of libindy under their Gitlab repo, rebranded as “VDR-Tools”. VDR-Tools already contains various great architectural improvements when compared to current version of Hyperledger libindy, mainly harnessing `async/await` features in Rust which were main pre-condition for solving ever-lasting wallet performance issues https://github.com/hyperledger/indy-sdk/issues/2164 We also commit to work with Evernym to further enhance vdr-tools to improve integration between `aries-vcx` and `vdr-tools`. In near-term future these would be tweaks to consume vdr-tools as native Rust dependency and harnessing `async/await` performance boosts on our mediator agency `vcxagency-node`.

PatrikStas (Thu, 19 Aug 2021 12:51:34 GMT):
@all important announcement - we have decided to move on from Hyperledger Libindy to its fork VDR-Tools. Evernym was the original author and the main maintainer of libindy, however they have decided to continue development of libindy under their Gitlab repo, rebranded as “VDR-Tools” https://gitlab.com/evernym/verity/vdr-tools. VDR-Tools already contains various great architectural improvements when compared to current version of Hyperledger libindy, mainly harnessing `async/await` features in Rust which were main pre-condition for solving ever-lasting wallet performance issues https://github.com/hyperledger/indy-sdk/issues/2164 We also commit to work with Evernym to further enhance vdr-tools to improve integration between `aries-vcx` and `vdr-tools`. In near-term future these would be tweaks to consume vdr-tools as native Rust dependency and harnessing `async/await` performance boosts on our mediator agency `vcxagency-node`.

PatrikStas (Thu, 19 Aug 2021 12:51:34 GMT):
@all important announcement - we have decided to move on from Hyperledger Libindy to its fork VDR-Tools. Evernym was the original author and the main maintainer of libindy, however they have decided to continue development of libindy under their Gitlab repo, rebranded as “VDR-Tools” https://gitlab.com/evernym/verity/vdr-tools. VDR-Tools already contains various great architectural improvements when compared to current version of Hyperledger libindy, mainly harnessing `async/await` features in Rust which were main pre-condition for solving ever-lasting wallet performance issues https://github.com/hyperledger/indy-sdk/issues/2164 We also commit to collaborate with Evernym on vdr-tools to improve integration between `aries-vcx` and `vdr-tools`. In near-term future these would be tweaks to consume vdr-tools as native Rust dependency and harnessing `async/await` performance boosts on our mediator agency `vcxagency-node`.

TimoGlastra (Sat, 21 Aug 2021 13:10:46 GMT):
Hey @PatrikStas I've had a quick look at the repo, but I'm not 100% sure on the difference between the shared indy/aries components (askar, credx, vdr) and the indy-vdr tools. Do they differ in performance? Has Askar also solved the wallet performance issues? Why did you choose to go for vdr-tools? We're also on the point to move away from lbindy in Aries Framework JavaScript, but are planning to use the new hyperledger libraries. I'm interested to hear your arguments on this :)

PatrikStas (Sun, 22 Aug 2021 15:50:13 GMT):
Hi @TimoGlastra well the main difference is that askar/credx/vdr are build from scratch, have completely new API compared to libindy/vdr-tools. At current point, the API of vdr-tools is almost identical to that of libindy. Given Evernym has developed most of libindy, I personally consider vdr-tools successor of libindy, a continuation of their work. About asynchronous storage - afaik aries-askar is also built with async rust, so the performance problems libindy used to have should be solved there. Aries VCX was build on top of libindy and swapping it with askar/credx/vdr would be gigantic effort. Using these libraries would be something I would consider if I were to write aries implementation in Rust from scratch. The thing is libindy/vdr-tools apart from implementing what's contained in askar/credex/vdr also provides 1 more function - integration, gluing all these 3 areas together. Think about creating credential definition - you will probably need to call some function in credex, then vdr to push it on ledger and finally save key material with askar. Using these components might give you a lots of power and freedom in way you want to do these things, but I've never had probably with how indy integrates these pieces. Rather than reimplementing parts of libindy, I want to focus on Aries protocols. With vdr-tools on the other hand, I was able to migrate from libindy essentially in a day, after some initial research. In particular, pgsql wallet plugin with vdr-tools currently doesn't work. And even if it would, it wouldn't harness the async/await gains implemented on indy layer (you would have to rewrite the plugin itself). However vdr-tools comes with mysql wallet storage which is async/await capable and from my testing provides at least 10x pref improvement (could be infinity if you use indy with pgsql and bad internet connection ^_^) compared to libindy+pgsql plugin. Apart from async/await stuff in vdr-tools, there's one more goodie I am very excited about - we'll be able to use vdr-tools as direct Rust dependency to aries-vcx, instead of depending on libindy/vdr-tools in runtime via shared library.

TimoGlastra (Mon, 23 Aug 2021 09:43:47 GMT):
These are some great points that it had not considered yet. I think keeping the same API and the glue are some nice things that really make it easier to integrate with libindy (or vdr-tools) compared to the askar/credx/vdr libraries.

TimoGlastra (Mon, 23 Aug 2021 09:43:55 GMT):
Thanks for the elaborate answer @PatrikStas

TimoGlastra (Mon, 23 Aug 2021 09:44:12 GMT):
I'm going to think about it a bit more :)

PaulRps (Wed, 25 Aug 2021 21:37:05 GMT):
Hi fellas, have someone launched https://github.com/AbsaOSS/vcxagencynode in kubernetes and got this error: `Failed to build FWA agent: Error: Unexpected error trying to create a wallet: 210 "IndyError: 210` ? It seems the database "wallets" was not created because the postgresql log shows that database does not exists. I have created a pod with bitnami postgresql with a headless service to access the database, i have seen the agencynode can reach and connect to it. can anyone give any tips?

PaulRps (Wed, 25 Aug 2021 21:37:05 GMT):
Hi fellas, has someone launched https://github.com/AbsaOSS/vcxagencynode in kubernetes and got this error: `Failed to build FWA agent: Error: Unexpected error trying to create a wallet: 210 "IndyError: 210` ? It seems the database "wallets" was not created because the postgresql log shows that database does not exists. I have created a pod with bitnami postgresql with a headless service to access the database, i have seen the agencynode can reach and connect to it. can anyone give any tips?

PaulRps (Wed, 25 Aug 2021 21:51:40 GMT):
i have used addRecordWallet method to controll duplicate connection. In addition, i have saved the credentials too because i could only see how to query data by `wallet.search` method (matching tags). Is there a different way to query serialized connections and credentials?

agentcooper75 (Fri, 27 Aug 2021 10:56:46 GMT):
Thank you Patrik. For some reason I have started to use the tags, as it also allows me to add thumbnails for the connections and other UI gimmicks.

agentcooper75 (Fri, 27 Aug 2021 10:59:19 GMT):
I am continuing my journey and using the iOS Wrapper (adbanced in developer branch) Demo as a guideline. Seems like i am stuck once again. - Wallet, mediator & pool is ready - connecting to a faber (waiting for connection) - Faber responds with "connected" and provides various options In the iOS Demo the following actions are described next when pressing the update button: 1. downloadMessages(messageStatus: "MS-103", uid_s: nil, pwdids: pwdids) Here the message type is extracted: did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/response 2. getRecordWallet 3. connectionDeserialize Based on the message type from above it executes "handleConnection" and runs following: 1. connectionUpdateState 2. updateRecordWallet 3. connectionRelease Unluckily the status now changes to: "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/problem-report" with Error: {\"en\": \"Unrecognized message type did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/ack\", \"code\": \"message-parse-failure\"}} Although i have already a connection, i assume that this extra step is the "Connection Acknowledgement" to get a complete state? Any idea what could be wrong here?

agentcooper75 (Fri, 27 Aug 2021 10:59:19 GMT):
I am continuing my journey and using the iOS Wrapper (advanced in developer branch) Demo as a guideline. Seems like i am stuck once again. - Wallet, mediator & pool is ready - connecting to a faber (waiting for connection) - Faber responds with "connected" and provides various options In the iOS Demo the following actions are described next when pressing the update button: 1. downloadMessages(messageStatus: "MS-103", uid_s: nil, pwdids: pwdids) Here the message type is extracted: did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/response 2. getRecordWallet 3. connectionDeserialize Based on the message type from above it executes "handleConnection" and runs following: 1. connectionUpdateState 2. updateRecordWallet 3. connectionRelease Unluckily the status now changes to: "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/problem-report" with Error: {\"en\": \"Unrecognized message type did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/ack\", \"code\": \"message-parse-failure\"}} Although i have already a connection, i assume that this extra step is the "Connection Acknowledgement" to get a complete state? Any idea what could be wrong here?

agentcooper75 (Fri, 27 Aug 2021 10:59:19 GMT):
I am continuing my journey and using the iOS Wrapper (advanced in developer branch) Demo as a guideline. Seems like i am stuck once again. - Wallet, mediator & pool is ready - connecting to a faber (waiting for connection) - Faber responds with "connected" and provides various options In the iOS Demo the following actions are described next when pressing the update button: 1. downloadMessages(messageStatus: "MS-103", uid_s: nil, pwdids: pwdids) Here the message type is extracted: did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/response 2. getRecordWallet 3. connectionDeserialize Based on the message type from above it executes "handleConnection" and runs following: 1. connectionUpdateState (return "4 - Accepted") 2. updateRecordWallet 3. connectionRelease Unluckily the status now changes to: "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/problem-report" with Error: {\"en\": \"Unrecognized message type did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/ack\", \"code\": \"message-parse-failure\"}} Although i have already a connection, i assume that this extra step is the "Connection Acknowledgement" to get a complete state? Any idea what could be wrong here?

agentcooper75 (Fri, 27 Aug 2021 10:59:19 GMT):
I am continuing my journey and using the iOS Wrapper (advanced in developer branch) Demo as a guideline. Seems like i am stuck once again. - Wallet, mediator & pool is ready - connecting to a faber (waiting for connection) - Faber responds with "connected" and provides various options In the iOS Demo the following actions are described next when pressing the update button: 1. downloadMessages(messageStatus: "MS-103", uid_s: nil, pwdids: pwdids) Here the message type is extracted: did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/response 2. getRecordWallet 3. connectionDeserialize Based on the message type from above it executes "handleConnection" and runs following: 1. connectionUpdateState (return "4 - Accepted") -> This seems to break it 2. updateRecordWallet 3. connectionRelease Unluckily the status now changes to: "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/problem-report" with Error: {\"en\": \"Unrecognized message type did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/ack\", \"code\": \"message-parse-failure\"}} Although i have already a connection, i assume that this extra step is the "Connection Acknowledgement" to get a complete state? Any idea what could be wrong here?

PatrikStas (Fri, 27 Aug 2021 13:23:20 GMT):
Hi Paul, the agency attemps to create wallet's database (for storing all wallets the agency needs). From your error I see the agency wants to create wallet, but the database doesn't exist. I think first thing would be to check if you have properly set up env variables PG_WALLET_ADMIN_ACCOUNT PG_WALLET_ADMIN_PASSWORD_SECRET As these are credentials used to create database schemas for the wallets.

PatrikStas (Fri, 27 Aug 2021 13:30:09 GMT):
Hi @agentcooper75 good to hear you are making a progress! Firstly I gotta say the iOS demo is 3rd party by guys from SK Telecom and we don't maintain it. It's been created a while ago and as we did some breaking changes over the course of time, I suspect it might need some tweaks to get working. First of all, what are you using as your "Faber"? Is it some aries-vcx based agent, or different framework, like acapy?

PatrikStas (Fri, 27 Aug 2021 13:30:09 GMT):
Hi @agentcooper75 good to hear you are making a progress! Firstly I gotta say the iOS demo is 3rd party by guys from SK Telecom and we don't maintain it. It's been created a while ago and as we did some breaking changes over the course of time, I suspect it might need some tweaks to get working. First of all, what are you using as your "Faber"? Is it some aries-vcx based agent, or different framework/agent, like acapy?

PatrikStas (Fri, 27 Aug 2021 13:31:41 GMT):
btw, Paul and Agent, are you guys working together?

agentcooper75 (Fri, 27 Aug 2021 13:32:34 GMT):
Hi Patrik, i am aware that the iOS Demo is outdated and doesn't work in current state. But kinda helps me with the workflow. Using https://github.com/hyperledger/aries-cloudagent-python to connect.

PatrikStas (Fri, 27 Aug 2021 13:34:05 GMT):
ooh you know, I think I know what's the issue, it's pretty simple actually, AgentCooper ... I've created github issue for this a while ago https://github.com/hyperledger/aries-vcx/issues/188

PatrikStas (Fri, 27 Aug 2021 13:35:33 GMT):
We have PR opened for cross-framework Aries compatibility testing https://github.com/hyperledger/aries-agent-test-harness/pull/243 So soon we'll know of any comptability issues well ahead of time

agentcooper75 (Fri, 27 Aug 2021 13:37:47 GMT):
btw. i do not know Paul :)

PaulRps (Fri, 27 Aug 2021 13:38:40 GMT):
Hi @PatrikStas, thanks for answer me. So, i checked those env vars and they match with what was set on postgresql. I have enabled indy logs and i've seen that message `INDYSDK: Init storage failed: IOError("IO error during storage operation: IO error")`. I dont know why that's happening, that message is generic. In addition, i've checked that the database does not exist in postgres container. I think can be something related to permission but i'm not sure.

PatrikStas (Fri, 27 Aug 2021 13:38:52 GMT):
So basically you have now 2 options: - wait until we fix our aries-vcx issue #188 (should be easy) - you could possibly as a workaround tweak code in acapy to accept `did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/ack` as a connection ack message type, instead of what it's really supposed to be - probably `https://didcomm.org/connections/1.0/ack`, not 100% sure

PatrikStas (Fri, 27 Aug 2021 13:38:52 GMT):
So basically you have now 2 options: - wait until we fix our aries-vcx issue #188 (should be easy) - you could possibly as a workaround tweak code in acapy to accept `did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/ack` as a connection ack message type, instead of what it's really supposed to be - probably `https://didcomm.org/connections/1.0/ack`, not 100% sure

PatrikStas (Fri, 27 Aug 2021 13:38:52 GMT):
So basically you have now 2 options: - wait until we fix our aries-vcx issue #188 (should be easy) - you could possibly as a workaround tweak code in acapy to accept `did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/ack` as a connection ack message type, instead of what it's really supposed to be - probably `https://didcomm.org/connections/1.0/ack`, not 100% sure

PatrikStas (Fri, 27 Aug 2021 13:38:52 GMT):
So basically you have now 2 options: - wait until we fix our aries-vcx issue `#188` (should be easy) - you could possibly as a workaround tweak code in acapy to accept `did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/notification/1.0/ack` as a connection ack message type, instead of what it's really supposed to be - probably `https://didcomm.org/connections/1.0/ack`, not 100% sure

PatrikStas (Fri, 27 Aug 2021 13:38:57 GMT):

PatrikStas (Fri, 27 Aug 2021 13:39:39 GMT):
Uhh didn't want to pinn that message

agentcooper75 (Fri, 27 Aug 2021 13:41:00 GMT):
Ok, I hope that's the issue. btw. i am getting the same issue when connecting to https://indicio-tech.github.io/mediator/ which I use for testing connections.

PatrikStas (Fri, 27 Aug 2021 13:42:41 GMT):
yeah it seems to be that based on that error message `Unrecognized message type ... `. It's afternoon here now, but I think Monday/Tuesday this fix could be in

agentcooper75 (Fri, 27 Aug 2021 13:43:57 GMT):
Thank you very much. Regards from rainy Germany.

PaulRps (Fri, 27 Aug 2021 13:45:13 GMT):
Hi @agentcooper75 , i'm new in hyperledger too, i've been learning all concepts with a mobile android app (with aries-vcs-framework) and vcxagency-node (NodeJs mediator).

agentcooper75 (Fri, 27 Aug 2021 13:45:41 GMT):
Nice, so we are kind of in the same boat.

PatrikStas (Fri, 27 Aug 2021 13:47:23 GMT):
Not so far, I am sitting in rainy Prague :-)

PatrikStas (Fri, 27 Aug 2021 13:48:30 GMT):
Does the user you have set to PG_WALLET_ADMIN_ACCOUNT has permissions to create new databases?

PaulRps (Fri, 27 Aug 2021 13:49:24 GMT):
Yes! In my tests i can create connections, issue and accept credentials and proofs. I've passed through some issues to do those things. Btw, i'm from Brazil :grin: .

PatrikStas (Fri, 27 Aug 2021 13:52:07 GMT):
[ ](https://chat.hyperledger.org/channel/aries-vcx?msg=CSWHmnfjJ6cgsJGEW) Btw if you by a chance fix the issues it has, kinda bring it up to date, let me know! The guys who made the app demo probably won't accept PRs anymore, but you could fork or just directly contribute into aries-vcx repo. It'd be great to eventually build demo aries-vcx app as part of aries-vcx CI process

PaulRps (Fri, 27 Aug 2021 13:53:22 GMT):
The user is postgres, as i've read it's the default user admin.

agentcooper75 (Fri, 27 Aug 2021 13:54:15 GMT):
I have plans to open source my swift code, once I cover the basics of the 3rd party demo.

PatrikStas (Fri, 27 Aug 2021 13:59:50 GMT):
Well the first step for sure is find out what exactly is preventing pgsql plugin to create the database. I've run into similar issue a while ago and it was hard to debug due to poor logging inside the pgsql plugin

PatrikStas (Fri, 27 Aug 2021 14:00:05 GMT):
I have a custom revision of the plugin where I've added more logs

PatrikStas (Fri, 27 Aug 2021 14:00:57 GMT):
So I'll build you a custom build where this logging is improved, then you should be able to progress further

PatrikStas (Fri, 27 Aug 2021 14:01:29 GMT):
But again, probably on Monday/Tuesday the earliest. I suspect it's gonna be permission issue or connectivity issue

PaulRps (Fri, 27 Aug 2021 14:03:08 GMT):
Nice! I've been strugling with that issue since monday. I'm trying to launch the mediator in kubernetes and i've stucked in it.

PaulRps (Fri, 27 Aug 2021 14:03:08 GMT):
Nice! I've been strugling with that issue since monday. I'm trying to launch the mediator in kubernetes and i've stucked in it. I saw a similar error but it was with acapy, the wallterConfig and WalletCredentials did not have scaped the Json string. Thank you for help me!

PaulRps (Fri, 27 Aug 2021 14:03:08 GMT):
Nice! I've been strugling with that issue since monday. I'm trying to launch the mediator in kubernetes and i've stucked in it. I saw a similar error but it was with acapy, the walltetConfig and WalletCredentials did not have scaped the Json string. Thank you for help me!

PatrikStas (Tue, 31 Aug 2021 13:00:24 GMT):
@PaulRps Hi, this build should be complete soon - use these docker images to enhance pgsql plugin logging https://github.com/AbsaOSS/vcxagencynode/pull/118

PatrikStas (Tue, 31 Aug 2021 13:00:54 GMT):
@agentcooper75 @type fix underway too https://github.com/hyperledger/aries-vcx/pull/341

PaulRps (Tue, 31 Aug 2021 13:12:29 GMT):
Thank you @PatrikStas, you're the guy! I'll try with that image.

agentcooper75 (Tue, 31 Aug 2021 14:54:13 GMT):
Thank you!

profae (Tue, 28 Sep 2021 07:50:42 GMT):
Hi all, does the library support predicates in proofs? I tried to pass them in a generate_proof e send the proof, but on the verifier it seems that no predicates are not set. Thank you

PatrikStas (Thu, 30 Sep 2021 10:38:18 GMT):
Hi @profae yes, when it comes to these low level / ledger stuff, aries-vcx supports everything that libindy does. I am little bit puzzled when you say that you try to pass predicates to `generate_proof` - that's the prover's side of protocol. However it's the verifier who must set up predicates when he's generating proof request. In NodeJS wrapper it roughly looks like this ``` const preds = [{ name: 'age', p_type: '>=', p_value: 100 }] const attrs = [{ name: 'name' }, { name: 'date' }, { name: 'degree' }] const proofParams = { sourceId, name, attrs, preds, revocationInterval } const proof = await Proof.create(proofParams) ``` So here the verifier is requesting proof revealing values of "name", "date", "degree" and also proof that "age" is 100 or more :-)

PatrikStas (Thu, 30 Sep 2021 10:40:51 GMT):
Then for prover's side of things - eg. generating the proof complying with the attributes and predicates specified in proof request, you might find it handy to take a look at this JS function `holderSelectCredentialsForProof ` https://github.com/hyperledger/aries-vcx/blob/a1127ab715ccf8794735cf675ac553dc8e52b25e/agents/node/vcxagent-core/src/utils/proofs.js

PatrikStas (Thu, 30 Sep 2021 10:42:25 GMT):
The function would be simpler if you wouldn't cater for proof on non revocations. Maybe you can start with that - non-revokable credential definition, don't request non-revocation proof on verifier side and then you can omit tails file stuff in the `holderSelectCredentialsForProof `

PatrikStas (Thu, 30 Sep 2021 10:44:57 GMT):
As for the predicates on prover's side, you shouldn't really need to think about it. If you look at that function, all we do at first is call ``` const resolvedCreds = await holderProof.getCredentials() ``` which is libindy function - libindy does all the work of finding compatible credentials given the proof request (and all it's requirements, including predicates)

PatrikStas (Thu, 30 Sep 2021 10:44:57 GMT):
As for the predicates on prover's side, you shouldn't really need to think about it. If you look at that function, all we do at first is call ``` const resolvedCreds = await holderProof.getCredentials() ``` which is propagates the call to libindy - libindy does all the work of finding compatible credentials given the proof request (and all it's requirements, including predicates)

profae (Thu, 30 Sep 2021 14:26:53 GMT):
Thanks for the reply sorry I was not precise. I intended to generate the proof_response via the vcx_disclosed_proof_generate_proof function (https://github.com/hyperledger/aries-vcx/blob/a148e9ccba683c932004b8a889bf115944261852/libvcx/src/api_lib/api_c/disclosed_proof.rs#L777) from the tests made, the proof sent does not contain the predicates section. i checked in the code and here https://github.com/hyperledger/aries-vcx/blob/a1127ab715ccf8794735cf675ac553dc8e52b25e/aries_vcx/src/libindy/proofs/prover/prover_internal.rs#L67 only the ATTRS section is considered and not PREDICATES By inserting the same management done for ATTRS for the PREDICATES, it seems to me that the predicates are sent.

PatrikStas (Tue, 05 Oct 2021 07:30:38 GMT):
Hi and sorry for late reply, I had a day off on Friday and just found your message yesterday. Do you have any new finding in regard to this? I am looking into the points you've raised. Lots of code in `aries-vcx` is from original fork, so I'll need to familiarize myself with this particular area closer.

PatrikStas (Tue, 05 Oct 2021 10:49:36 GMT):
Hi Profae I am coming back with some answers now :-) The predicates seems to work, there's a test which illustrates nicely what prover needs to do to satisfy the predicates

PatrikStas (Tue, 05 Oct 2021 10:49:36 GMT):
Take a look at `test_generate_proof_with_predicates`

PatrikStas (Tue, 05 Oct 2021 10:49:45 GMT):
in Rust `aries-vcx` code

PatrikStas (Tue, 05 Oct 2021 10:50:43 GMT):
I've printed result of this call `let all_creds: serde_json::Value = serde_json::from_str(&proof.retrieve_credentials().unwrap()).unwrap();` and `all_creds` looks like this: ``` {"attrs":{"address1_1":[{"cred_info":{"attrs":{"address1":"123 Main St","address2":"Suite 3","city":"Draper","state":"UT","zip":"84000"},"cred_def_id":"V4SGRU86Z58d6TV7PBUe6f:3:CL:28:tag1","cred_rev_id":"1","referent":"e37940e6-7d10-436e-8083-cc491c8bfcfb","rev_reg_id":"V4SGRU86Z58d6TV7PBUe6f:4:V4SGRU86Z58d6TV7PBUe6f:3:CL:28:tag1:CL_ACCUM:tag1","schema_id":"V4SGRU86Z58d6TV7PBUe6f:2:K7aXP2OzRJoRCtPrzgHNmYt8E:382350815.2350081969"},"interval":{"from":123,"to":1633420644}}],"zip_2":[{"cred_info":{"attrs":{"address1":"123 Main St","address2":"Suite 3","city":"Draper","state":"UT","zip":"84000"},"cred_def_id":"V4SGRU86Z58d6TV7PBUe6f:3:CL:28:tag1","cred_rev_id":"1","referent":"e37940e6-7d10-436e-8083-cc491c8bfcfb","rev_reg_id":"V4SGRU86Z58d6TV7PBUe6f:4:V4SGRU86Z58d6TV7PBUe6f:3:CL:28:tag1:CL_ACCUM:tag1","schema_id":"V4SGRU86Z58d6TV7PBUe6f:2:K7aXP2OzRJoRCtPrzgHNmYt8E:382350815.2350081969"},"interval":{"from":98,"to":1633420644}}],"zip_3":[{"cred_info":{"attrs":{"address1":"123 Main St","address2":"Suite 3","city":"Draper","state":"UT","zip":"84000"},"cred_def_id":"V4SGRU86Z58d6TV7PBUe6f:3:CL:28:tag1","cred_rev_id":"1","referent":"e37940e6-7d10-436e-8083-cc491c8bfcfb","rev_reg_id":"V4SGRU86Z58d6TV7PBUe6f:4:V4SGRU86Z58d6TV7PBUe6f:3:CL:28:tag1:CL_ACCUM:tag1","schema_id":"V4SGRU86Z58d6TV7PBUe6f:2:K7aXP2OzRJoRCtPrzgHNmYt8E:382350815.2350081969"},"interval":{"from":98,"to":1633420644}}]}} ```

PatrikStas (Tue, 05 Oct 2021 10:52:08 GMT):
So you see, when you retrieve the credentials satisfying proof request calling `proof.retrieve_credentials`, which calls indy function `libindy_prover_get_credentials_for_proof_req` it returns data structure ``` { attrs: { field1: {}, field2: {}, ... } } ``` as you can see above

PatrikStas (Wed, 06 Oct 2021 09:03:18 GMT):
Hi @profae, so I dug into this a bit yesterday and can confirm again that predicates work. For demonstration I've pushed a branch with few tests I've added. https://github.com/hyperledger/aries-vcx/pull/358/files In particular, try to run ``` RUST_LOG=warn RUST_BACKTRACE=1 cargo test test_proof_with_predicates_should_be_validated --features "agency_pool_tests" -- --test-threads=1 ``` For demonstration I've added some stdout to that test as well, so it will print presentation received by verifier and you can see it contains following: ``` "primary_proof": { "eq_proof": { "revealed_attrs": {}, ... ``` Also if you try to run test `test_it_should_fail_to_selected_credentials_for_predicate` you will see that this test fails now, because there's no credential satsifying predicate constraints

PatrikStas (Wed, 06 Oct 2021 09:08:01 GMT):
As for your question why here https://github.com/hyperledger/aries-vcx/blob/a1127ab715ccf8794735cf675ac553dc8e52b25e/aries_vcx/src/libindy/proofs/prover/prover_internal.rs#L67 the code only works with `attrs` field - the `credentials` argument is a structure which prover needs to construct based on data received from ``` const resolvedCreds = await holderProof.getCredentials() ``` That structure only needs to contains `attrs` field, which is a map. Each of its keys is must refer to either name of requested_attribute OR requested_predicate from the proof request.

profae (Fri, 08 Oct 2021 10:17:27 GMT):
I don't know the code, but I'm sure it didn't work without that fix. I'll try to understand better

kukgini (Sat, 16 Oct 2021 04:26:10 GMT):
Has joined the channel.

kukgini (Mon, 18 Oct 2021 11:30:35 GMT):
Hi here. i tried in my iOS swift code:`ConnectMeVcx().createWallet(config)` with ios vcx wrapper. and i got this error: `Error Domain=VcxErrorDomain Code=1004 "(null)"` my config was like this: ``` { "wallet_name":"alice_wallet", "wallet_type":"default", "wallet_key":"123456", } ``` i can find what is wrong. would you help me?

kukgini (Mon, 18 Oct 2021 11:30:35 GMT):
Hi here. i tried in my iOS swift code:`ConnectMeVcx().createWallet(config)` with ios vcx wrapper. and i got this error: `Error Domain=VcxErrorDomain Code=1004 "(null)"` i think it means `INVALID_CONFIGURATION`. my config was like this: ``` { "wallet_name":"alice_wallet", "wallet_type":"default", "wallet_key":"123456", } ``` i can find what is wrong. would you help me?

kukgini (Mon, 18 Oct 2021 11:30:35 GMT):
Hi here. i tried in my iOS swift code:`ConnectMeVcx().createWallet(config)` with ios vcx wrapper. and i got this error: `Error Domain=VcxErrorDomain Code=1004 "(null)"` i think it means `INVALID_CONFIGURATION`. my config was like this: ``` { "wallet_name":"alice_wallet", "wallet_type":"default", "wallet_key":"123456", } ``` and i can't find what is wrong. would you help me?

kukgini (Mon, 18 Oct 2021 11:30:35 GMT):
Hi here. i tried in my iOS swift code:`ConnectMeVcx().createWallet(config)` with ios vcx wrapper. (aries-vcx 0.21.0) and i got this error: `Error Domain=VcxErrorDomain Code=1004 "(null)"` i think it means `INVALID_CONFIGURATION`. my config was like this: ``` { "wallet_name":"alice_wallet", "wallet_type":"default", "wallet_key":"123456", } ``` and i can't find what is wrong. would you help me? comment inside code says all other property can be optional.

kukgini (Mon, 18 Oct 2021 11:30:35 GMT):
Hi here. i tried in my iOS swift code:`ConnectMeVcx().createWallet(config)` with ios vcx wrapper. (aries-vcx 0.21.0) and i got this error: `Error Domain=VcxErrorDomain Code=1004 "(null)"` i think it means `INVALID_CONFIGURATION`. my config was like this: ``` { "wallet_name":"alice_wallet", "wallet_type":"default", "wallet_key":"123456", } ``` and i can't find what is wrong. would you help me? the code says all other property can be optional.

kukgini (Tue, 19 Oct 2021 09:55:16 GMT):
Hello. I am trying to migrate my old aries-vcx based iOS mobile app to the latest version (0.21.0). As of 0.18.0, it is confirmed that there was a change that removed the `agentProvisionAsync` function. I was wondering what is the correct way to do something like this.

kukgini (Tue, 19 Oct 2021 09:55:16 GMT):
Hello. I am trying to migrate my old aries-vcx based iOS mobile app to the latest version (0.21.0). I noticed that from 0.18.0 there is a change that removed the 'agentProvisionAsync' function. I was wondering what is the correct way to do this.

kukgini (Tue, 19 Oct 2021 09:55:16 GMT):
Hello. I am trying to migrate my old aries-vcx based iOS mobile app to the latest version (0.21.0). I noticed that from 0.18.0 there is a change that removed the 'agentProvisionAsync' function. I am wondering what is the correct way to do this.

kukgini (Tue, 19 Oct 2021 09:55:16 GMT):
Hello. I am trying to migrate my old aries-vcx based iOS mobile app to the latest version (0.21.0). I noticed that from 0.18.0 there is a change that removed the 'agentProvisionAsync' function. I am wondering what is the right way to do this.

kukgini (Wed, 20 Oct 2021 09:18:11 GMT):
I found that I could refer to this example : `./agents/node/vcxagent-core/src/utils/vcx-workflows.js` Sorry for bodering you.

mateokurti (Tue, 02 Nov 2021 13:21:52 GMT):
Has joined the channel.

mateokurti (Tue, 02 Nov 2021 13:21:53 GMT):
Quick question for the vcx community. I read some questions and some answers from @mirgee and @PatrikStas on this channel which honestly helped me a lot understanding aries-vcx. However, I didn't find a direct answer regarding aries-vcx support for AIP 2.0. Is there any roadmap or an estimation about when aries-vcx will support AIP 2.0?

kukgini (Wed, 03 Nov 2021 08:21:08 GMT):
@mateokurti I think they talked about the roadmap here: https://github.com/hyperledger/aries-vcx/blob/main/roadmap.md According to this roadmap, they are currently focusing on creating a backchannel and improving performance with the goal of passing the AATH AIP 1.0 test, and support for AIP 2.0 is likely only after that.

kukgini (Wed, 03 Nov 2021 08:21:08 GMT):
@mateokurti I think they talked about the roadmap here: https://github.com/hyperledger/aries-vcx/blob/main/roadmap.md According to this roadmap, they are currently focusing on creating a backchannel for AATH AIP 1.0 and improving performance, and support for AIP 2.0 is likely only after that.

kukgini (Wed, 03 Nov 2021 08:28:14 GMT):
Hi here. I have a question too.

kukgini (Wed, 03 Nov 2021 08:28:14 GMT):
Hi here. I have a question too. In this document, (https://aries-interop.info/aries-vcx.html) I see the tested version of aries-vcx is 1.0.0. But, In this repository (https://github.com/hyperledger/aries-vcx), Latetest release is only 0.23.0. Am I seeing a wrong place?

mirgee (Wed, 03 Nov 2021 09:28:50 GMT):
Hi @mateokurti , as mentioned by @kukgini below, you can find our rough roadmap here: https://github.com/hyperledger/aries-vcx/blob/main/roadmap.md . We are quite far into Phase 2 - we have a working AATH backchannel, support OoB and public DIDs to some extent. Our priority is improve on support and APIs for this functionality as best as we can before embarking on implementation of AIP 2.0 (which follows).

mirgee (Wed, 03 Nov 2021 09:30:18 GMT):
Hi @kukgini , 0.23.0 is the version of aries-vcx project, 1.0.0 is likely the version of AATH backchannel.

mirgee (Wed, 03 Nov 2021 09:30:18 GMT):
Hi @kukgini , 0.23.0 is the version of aries-vcx project, 1.0.0 is likely the version of our AATH backchannel.

kukgini (Wed, 03 Nov 2021 09:31:08 GMT):
Oh. thank you about quick response @mirgee :grinning:

mirgee (Wed, 03 Nov 2021 09:32:06 GMT):
No problem :) Thanks for the question - maybe we can version the backchannel same as our main repo to avoid confusion.

mateokurti (Wed, 03 Nov 2021 10:05:20 GMT):
Hi! Thanks for the answer @mig. I am quite new to SSI and I've started working in a project that will use SSI agents, and we're trying to decide the frameworks.

mateokurti (Wed, 03 Nov 2021 10:06:40 GMT):
Hi! Thanks for the answer @mirgee and @kukgini . I am quite new to SSI and I've started working in a project that will use SSI, and we're trying to decide the frameworks for each agent.

kukgini (Wed, 03 Nov 2021 10:07:51 GMT):
I wonder VCX can run as a multi-tenency cloud agecy , not just mediator?

mateokurti (Wed, 03 Nov 2021 10:08:04 GMT):
I saw these interoperability results: https://aries-interop.info/ and I can see that Proof Proposals, Public Dids, Revocations are listed as exceptions. I think some of these are mentioned on Phase 2, right?

mateokurti (Wed, 03 Nov 2021 10:09:22 GMT):
And I also saw the failed test of VCX https://allure.vonx.io/api/allure-docker-service/projects/acapy-b-aries-vcx/reports/latest/index.html?redirect=false#behaviors/37beada92eab24d252927a10f76fb42a/a5fbe9111eee8f8f/ which I can't quite understand. I want to know that if we go with VCX, can our agents communicate with other ledgers than Indy and with other agents maybe running on ACA-Py, .NET, AFGo etc

mirgee (Wed, 03 Nov 2021 10:50:54 GMT):
@mateokurti These interoperability results are outdated. We have a aries-vcx backchannel here https://github.com/hyperledger/aries-agent-test-harness/pull/364 which supports many more tests including credential and proof proposals. aries-vcx itself does support public dids and revocations (including batch revocations, as the only framework AFAIK), it's just a matter of implementing them into the AATH backchannel. Currently, we are focusing on simplifying the API, internal refactoring, followed by backchannel update and new features including AIP 2.0.

mirgee (Wed, 03 Nov 2021 10:54:49 GMT):
@mateokurti As for interoperability with other agents, we are extremely careful to implement the Aries standards faithfully so aries-vcx is interoperable with other agents to the extent they follow the Aries standard (prelimary results suggests they do).

mirgee (Wed, 03 Nov 2021 10:58:11 GMT):
@mateokurti Aries-vcx currently does not support other ledgers or VCRs than indy (I am not aware any other Aries framework does), but the goal is definitely to become ledger / VCR agnostic.

mirgee (Wed, 03 Nov 2021 11:02:55 GMT):
Hmm, I am not sure I quite understand the question, but aries-vcx is designed to use any aries-compatible agency service, such as vcxagencynode: https://github.com/AbsaOSS/vcxagencynode

mirgee (Wed, 03 Nov 2021 11:02:55 GMT):
Hmm, I am not sure I quite understand the question, but aries-vcx is designed to use any aries-compatible cloud agency service, such as vcxagencynode: https://github.com/AbsaOSS/vcxagencynode

mirgee (Wed, 03 Nov 2021 11:02:55 GMT):
Hmm, I am not sure I quite understand the question, but aries-vcx is designed to use any aries-compatible cloud agency service, such as vcxagencynode, a lightweight cloud agency written in node https://github.com/AbsaOSS/vcxagencynode (we are considering rewriting it in rust and including it in aries-vcx repository, however)

mirgee (Wed, 03 Nov 2021 11:59:52 GMT):
@mateokurti However, if multi-ledger support you mean mainnet, stagingnet, and buildernet of Indy aries-vcx supports all of them of course

mateokurti (Wed, 03 Nov 2021 21:16:34 GMT):
Great answers, thank you! No, by other ledgers I mean other than Indy. We want to use an Indy Ledger, but the idea is to also be able to accept credentials which might be issued by agents using other ledger than Indy. I think AFGo is ledger and VCR agnostic, but it can't write on Indy ledgers.

mateokurti (Wed, 03 Nov 2021 21:18:43 GMT):
Also, I am not sure if an agent build on AFGo can communicate with an agent built on VCX. AFGo only support AIP 2.0 and in the other hand VCX supports only AIP 1.0. I think that AIP 2.0 RFCs are designed to be ledger and VCR agnostic.

kukgini (Thu, 04 Nov 2021 01:01:32 GMT):
@mateokurti Current VCX only support AIP 1.0 which means even if AFGo use Indy ledger, then can't communicate each other because VC format is different.

kukgini (Thu, 04 Nov 2021 01:07:32 GMT):
Even if VCX supports AIP 2.0, it is still unknown whether AFGo will recognize Indy's Anoncred VC format. The only way to be interoperable seems to be that both sides support AIP 2.0 while simultaneously supporting VC in Json-LD format.

mateokurti (Thu, 04 Nov 2021 10:02:14 GMT):
Interesting. And as you said, the goal for VCX is to ledger and VCR agnostic. So, by that I suppose that in the future we can expect VCX to also support JSON-LD format for VCs.

mateokurti (Thu, 04 Nov 2021 10:02:14 GMT):
Interesting. And as @mirgee said, the goal for VCX is to ledger and VCR agnostic. So, by that I suppose that in the future we can expect VCX to also support JSON-LD format for VCs.

mateokurti (Thu, 04 Nov 2021 10:02:14 GMT):
Interesting. And as @mirgee said, the goal for VCX is to be ledger and VCR agnostic. So, by that I suppose that in the future we can expect VCX to also support JSON-LD format for VCs.

mateokurti (Thu, 04 Nov 2021 10:06:26 GMT):
So, if we develop our mobile agents using aries-vcx wrappers, and also if we use NodeVCX agency, as for now, it won't be possible to resolve for example JSON-LD credentials, but we can expect to have it supported in the future.

mateokurti (Thu, 04 Nov 2021 10:07:41 GMT):
About the issuer/verifier agent, if we use ACA-Py, can it have a good "communication" with the VCX agents? Or it might be a better idea to also use aries-vcx for issuer/verifier agent

mirgee (Thu, 04 Nov 2021 10:19:27 GMT):
@mateokurti @kukgini In the future, aries-vcx will support both AIP 1.0 and AIP 2.0, meaning it's interoperability scope will be larger than then of AFGo. However, it is true that aries-vcx is not able to exchange / verify credentials via AIP 2.0 yet. As for JSON-LD support: our goal is to stick to the Aries standard to the greatest extent possible so as to be as interoperable as possible within the standard. Aries is credential format agnostic. This means we will try to support as many credential formats used by other agents in order of their prevalence. JSON-LD is becoming prevalent enough for you to count on us supporting it in the future.

mirgee (Thu, 04 Nov 2021 10:24:30 GMT):
@mateokurti If you use ACAPy for issuer / verifier agents and aries-vcx for holder / prover agents, you should have a good interoperability, but you will always have a better interoperability if you use the same framework on both sides of course. Aries-vcx is designed to be usable by all of issuers, verifiers, holders and provers.

mateokurti (Thu, 04 Nov 2021 10:30:43 GMT):
@mirgee Interesting. My concern is that if I issue credentials using a VCX agent, are my credentials going to be known by most of the verifiers?

mirgee (Thu, 04 Nov 2021 10:40:41 GMT):
@mateokurti I understand that concern and it is one of the main challenges in SSI right now. AFAIK, aries-vcx issued credentials will be supported by all aries framework agents except for AFGo (as I was surprised to learn from @kukgini )

mirgee (Thu, 04 Nov 2021 10:41:25 GMT):
They will definitely be supported by ACAPy and AFJS, I am not as familiar with the others.

mirgee (Thu, 04 Nov 2021 10:57:50 GMT):
AF-.NET is based on libindy so it is definitely interoperable as well

kukgini (Tue, 09 Nov 2021 01:26:21 GMT):
I'm not sure this is right place to ask. I'm trying to run vcxagencynode as a mediator agency. but release 0.3.1 can not be run on docker. error message is follows: `> vcxagency-node@0.3.1 serve /home/node/vcxagency-node > NODE_ENV=production node src/index.js App configuration will be loaded from supplied environment variables. npm ERR! code ELIFECYCLE npm ERR! errno 255 npm ERR! vcxagency-node@0.3.1 serve: `NODE_ENV=production node src/index.js` npm ERR! Exit status 255 npm ERR! npm ERR! Failed at the vcxagency-node@0.3.1 serve script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/node/.npm/_logs/2021-11-09T01_24_36_468Z-debug.log`

kukgini (Tue, 09 Nov 2021 01:26:21 GMT):
I'm not sure this is right place to ask. I'm trying to run vcxagencynode as a mediator agency. but release 0.3.1 can not be run on docker. error message is follows: ``` > vcxagency-node@0.3.1 serve /home/node/vcxagency-node > NODE_ENV=production node src/index.js App configuration will be loaded from supplied environment variables. npm ERR! code ELIFECYCLE npm ERR! errno 255 npm ERR! vcxagency-node@0.3.1 serve: `NODE_ENV=production node src/index.js` npm ERR! Exit status 255 npm ERR! npm ERR! Failed at the vcxagency-node@0.3.1 serve script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/node/.npm/_logs/2021-11-09T01_24_36_468Z-debug.log ```

kukgini (Tue, 09 Nov 2021 02:49:29 GMT):
Hi here. i'm trying to provision cloud agent. my codes are follows: (I referenced the code from AATH) ``` let agency_config = AgentProvisionConfig { agency_endpoint, // Endpoint will be "https://ariesvcx.agency.staging.absa.id" from ENV agency_did: "VsKV7grR1BUE29mG2Fm2kX".to_string(), agency_verkey: "Hezce2UWMZ3wUhVkh2LfKSs8nDzWwzs2Win7EzNN3YaR".to_string(), agent_seed: None }; create_wallet(&wallet_config).unwrap(); let _wh = open_as_main_wallet(&wallet_config).unwrap(); let _ph = open_main_pool(&pool_config).unwrap(); let _ageny_config = provision_cloud_agent(&agency_config).unwrap(); <-- ERROR HERE !!! ```

kukgini (Tue, 09 Nov 2021 02:53:25 GMT):

error.txt

kukgini (Tue, 09 Nov 2021 02:53:25 GMT):

error.txt

kukgini (Tue, 09 Nov 2021 02:53:25 GMT):

error.txt

kukgini (Tue, 09 Nov 2021 02:53:25 GMT):

error.txt

kukgini (Tue, 09 Nov 2021 02:53:25 GMT):

error.txt

mirgee (Tue, 09 Nov 2021 11:08:56 GMT):
Hi @kukgini , what version of aries-vcx are you using? I would suggest you try using 0.23.0+. This error occurred in 0.22.0 because we updated reqwest to a version whose blocking API creates a nested runtime where the inner runtime is dropped, resulting in a panic. This was fixed in 0.23.0 release.

kukgini (Tue, 09 Nov 2021 12:11:40 GMT):
Thank you @mirgee. I thought I used same version with AATH which is `aries-vcx = { git = "https://github.com/hyperledger/aries-vcx", rev = "ab5bf5e" }`. but i'll check again.

kukgini (Tue, 09 Nov 2021 12:11:40 GMT):
Thank you @mirgee . I thought I used same version with AATH which is `aries-vcx = { git = "https://github.com/hyperledger/aries-vcx", rev = "ab5bf5e" }`. but i'll check again.

kukgini (Fri, 12 Nov 2021 03:24:39 GMT):
Hi here. Does anybody knows how to enable VCX and INDY log in iOS Wrapper?

kukgini (Fri, 12 Nov 2021 03:24:39 GMT):
Hi here. Does anybody knows how to enable VCX and INDY debug log in iOS?

kukgini (Fri, 12 Nov 2021 08:58:53 GMT):
I fixed the version of libvcx to 0.23.0 and tried again, but the error is not resolved. from the 0.23.0 release notes, this seems to be a reqwest issue (https://github.com/hyperledger/aries-vcx/pull/368) and I checked if the reqwest version is down to 0.10.10. At least the version in Cargo.lock is: ``` [[package]] name = "reqwest" version = "0.10.10" ```

kukgini (Fri, 12 Nov 2021 08:58:53 GMT):
I fixed the version of libvcx to 0.23.0 and tried again, but the error is not resolved. from the 0.23.0 release notes, this seems to be a reqwest issue (https://github.com/hyperledger/aries-vcx/pull/368) and I checked if the reqwest version is down to 0.10.10. see below: Cargo.toml: ``` [dependencies] aries-vcx = { git = "https://github.com/hyperledger/aries-vcx", tag = "0.23.0" } ``` Cargo.lock: ``` [[package]] name = "reqwest" version = "0.10.10" ```

kukgini (Fri, 12 Nov 2021 08:58:53 GMT):
I fixed the version of libvcx to 0.23.0 and tried again, but the error is not resolved. from the 0.23.0 release notes, this seems to be a reqwest issue (https://github.com/hyperledger/aries-vcx/pull/368) and I checked if the reqwest version is down to 0.10.10.see below: Cargo.toml: ``` [dependencies] aries-vcx = { git = "https://github.com/hyperledger/aries-vcx", tag = "0.23.0" } ``` Cargo.lock: ``` [[package]] name = "reqwest" version = "0.10.10" ```

kukgini (Fri, 12 Nov 2021 08:58:53 GMT):
Hello @mirgee. following your advice, I fixed the version of libvcx to 0.23.0 and tried again, but the error is not resolved. from the 0.23.0 release notes, this seems to be a reqwest issue (https://github.com/hyperledger/aries-vcx/pull/368) and I checked if the reqwest version is down to 0.10.10.see below: Cargo.toml: ``` [dependencies] aries-vcx = { git = "https://github.com/hyperledger/aries-vcx", tag = "0.23.0" } ``` Cargo.lock: ``` [[package]] name = "reqwest" version = "0.10.10" ```

kukgini (Fri, 12 Nov 2021 08:58:53 GMT):
Hello @mirgee . following your advice, I fixed the version of libvcx to 0.23.0 and tried again, but the error is not resolved. from the 0.23.0 release notes, this seems to be a reqwest issue (https://github.com/hyperledger/aries-vcx/pull/368) and I checked if the reqwest version is down to 0.10.10.see below: Cargo.toml: ``` [dependencies] aries-vcx = { git = "https://github.com/hyperledger/aries-vcx", tag = "0.23.0" } ``` Cargo.lock: ``` [[package]] name = "reqwest" version = "0.10.10" ```

kukgini (Fri, 12 Nov 2021 08:58:53 GMT):
Hello @mirgee . following your advice, I fixed the version of libvcx to 0.23.0 and tried again, but the error is not resolved. from the 0.23.0 release notes, this seems to be a reqwest issue (https://github.com/hyperledger/aries-vcx/pull/368) and I checked if the reqwest version is down to 0.10.10.see below: Cargo.toml: ``` [dependencies] reqwest = { version = "0.10.10", features = ["json", "blocking"] } aries-vcx = { git = "https://github.com/hyperledger/aries-vcx", tag = "0.23.0" } ``` Cargo.lock: ``` [[package]] name = "reqwest" version = "0.10.10" ```

mirgee (Fri, 12 Nov 2021 11:28:43 GMT):
@kukgini The important record in Cargo.lock is ``` [[package]] name = "agency_client" version = "0.1.0" source = "..." dependencies = [ ... "reqwest 0.10.0", ... ] ``` but actually I can see the reqwest version in the error log. Interesting, I am not encountering the same issue on MacOS rust toolchain version 1.55.0. Can you make sure you are using the same toolchain version, remove the "blocking" feature in your reqwest dependency (if you don't need it in your app), run cargo clean, and try again? It may also be futures or tokio version...

mirgee (Fri, 12 Nov 2021 11:36:21 GMT):
Thank you for pointing that issue out, I was not aware of it.

mirgee (Fri, 12 Nov 2021 11:42:55 GMT):
We have been having the same problem and I don't think we have figured this one out yet :/ But getting debug logs on Android is easy.

PatrikStas (Fri, 12 Nov 2021 11:42:59 GMT):
Hi @kukgini we ran into the same issue with reqwest 0.11.x on OSX, so we downgraded to 0.10.x and it fixed the issue for OSX. However originally we were using reqwest 0.9.x and did not have this problem on iOS nor OSX. So I'll try to make a PR with further downgrade to 0.9.x and I think it should fix it for you, we did not observe these issues on iOS previously.

PatrikStas (Fri, 12 Nov 2021 11:44:51 GMT):
The final solution I think is update reqwest to 0.11.x but stop using its blocking API, which unfortunately we currently are. We already have draft PR for that https://github.com/hyperledger/aries-vcx/pull/370 but using async api has impact across entire codebase, so this PR might take a while. 0.9.x reqwest should resolve your issue in the meantime. I'll let you know when the build is ready

kukgini (Fri, 12 Nov 2021 11:46:47 GMT):
Thanks @mirgee, @PatrikStas Anyway, it's strange that my second post's environment is Ubuntu Linux. I'am trying to remove the blocking option and try again, so please wait for a while.

PatrikStas (Fri, 12 Nov 2021 11:47:01 GMT):
Yes, having said that - it should be possible but we did not invested enough effort to find out how. Usually we just debugged on android if we run into a mobile issue

PatrikStas (Fri, 12 Nov 2021 11:48:33 GMT):
If you mean that you are trying to remove `blocking` feature from `cargo.json`, that's gigantic piece of effort - basically the PR I linked.

PatrikStas (Fri, 12 Nov 2021 11:48:33 GMT):
If you mean that you are trying to remove `blocking` feature from `cargo.yaml`, that's gigantic piece of effort - basically the PR I linked.

PatrikStas (Fri, 12 Nov 2021 11:48:33 GMT):
If you mean that you are trying to remove `blocking` feature from `cargo.toml`, that's gigantic piece of effort - basically the PR I linked.

mirgee (Fri, 12 Nov 2021 11:50:49 GMT):
@PatrikStas He means removing it from the Cargo.toml of his client app.

mirgee (Fri, 12 Nov 2021 11:50:49 GMT):
@PatrikStas @kukgini means removing it from the Cargo.toml of his client app.

kukgini (Fri, 12 Nov 2021 11:57:39 GMT):
@mirgee , @PatrikStas after remove `blocking` feature @mirgee suggested, ubuntu linux works fine. but osx has still same. OS X version is : 12.0.1 ``` % rustup show Default host: x86_64-apple-darwin rustup home: ... installed targets for active toolchain -------------------------------------- aarch64-apple-ios x86_64-apple-darwin x86_64-apple-ios active toolchain ---------------- stable-x86_64-apple-darwin (default) rustc 1.56.1 (59eed8a2a 2021-11-01) % rustc --version rustc 1.56.1 (59eed8a2a 2021-11-01) % cargo --version cargo 1.56.0 (4ed5d137b 2021-10-04) ```

mirgee (Fri, 12 Nov 2021 12:00:47 GMT):
@kukgini Have you run cargo clean before compiling on both platforms?

mirgee (Fri, 12 Nov 2021 12:00:47 GMT):
@kukgini Have you run cargo clean before compiling on both platforms? I am both surprised that removing the blocking feature helped and that the problem is platform-specific

kukgini (Fri, 12 Nov 2021 12:02:45 GMT):
@mirgee sure, i delete target directory and ran cargo clean too.

kukgini (Fri, 12 Nov 2021 12:04:21 GMT):
Or maybe i confused about platforms. i'm not sure.

mirgee (Fri, 12 Nov 2021 12:10:04 GMT):
@kukgini I would try making sure that dependencies like reqwest, tokio and futures have the same version on both platforms (if it works on Ubuntu as you say), as well as rust toolchain. Any ideas, @PatrikStas ?

kukgini (Fri, 12 Nov 2021 12:24:48 GMT):
@mirgee, @PatrikStas I ran again add blocking feature on linux and error not occured. so, i'm sure it was my mistake. sorry to bordring you. it is OS X only problem now.

kukgini (Fri, 12 Nov 2021 12:25:44 GMT):
tokio version is 0.2.25. is it good?

PatrikStas (Fri, 12 Nov 2021 12:25:54 GMT):
Out of curiosity, what are you building? You have your mobile rust project where you use aries-vcx as dependency?

kukgini (Fri, 12 Nov 2021 12:28:34 GMT):
Oh. I was following the code written by @miragee in AATH to learn how to write rust-based server agent.

kukgini (Fri, 12 Nov 2021 12:28:34 GMT):
@PatrikStas Oh. I was following the code written by @mirgee in AATH to learn how to write rust-based server agent.

mirgee (Fri, 12 Nov 2021 12:29:49 GMT):
@kukgini Just keep in mind there is a lot that can be improved about that AATH backchannel :)

PatrikStas (Fri, 12 Nov 2021 12:30:30 GMT):
Oh very nice! We are looking to build issuer/verifier Rust application directly on top aries-vcx in the future

kukgini (Fri, 12 Nov 2021 12:31:00 GMT):
i'm newbie about rust, so i think it was a good example. sure @mirgee. i always keep in mind that. ;-)

kukgini (Fri, 12 Nov 2021 12:31:00 GMT):
i'm newbie about rust, so i think it was a good example. sure @mirgee . i always keep in mind that. ;-)

kukgini (Fri, 12 Nov 2021 12:31:00 GMT):
i'm newbie about rust, so i thought it is a good example. sure @mirgee . i always keep in mind that. ;-)

kukgini (Fri, 12 Nov 2021 12:36:25 GMT):
@mirgee, @PatrikStas I got it. Thank you anyway. :ok_hand:

mateokurti (Fri, 12 Nov 2021 14:24:46 GMT):
Hi there! Quick question. Can a mobile agent running on aries-vcx easily communicate with a ACA-Py metiator agent?

PatrikStas (Fri, 12 Nov 2021 14:42:41 GMT):
hi @mateokurti fundamentally speaking, it should. We've recently implemented backchannel component for Aries cross compatibility testing. So far we have only a handful of tests running between `aries-vcx / acapy` pair but we'll be enabling more of them. The latest report is here https://allure.vonx.io/api/allure-docker-service/projects/acapy-b-aries-vcx/reports/29/index.html Also depends how you define "easily" though :-) If you build mobile agent on top of `aries-vcx`, you would also need to have instance of specific mediator agent implementation https://github.com/AbsaOSS/vcxagencynode to enable asynchronous communication - we did not yet implement mediator pickup/mediate/route protocol, though we have it in our backlog.

mateokurti (Fri, 12 Nov 2021 15:18:45 GMT):
Thank you for the fast response @PatrikStas So, for the mediator agent it is better to use the VCX Agency instead of ACA-Py? What about the issuer/verifier then. Can we go with ACA-Py? Does it make sense to go for it? Can it communicate with the VCX Agency?

PatrikStas (Fri, 12 Nov 2021 15:21:38 GMT):
For issuer and verifier, it does make sense to use acapy. If you use aries-vcx on mobile, you need to run mediator agent for mobile devices, but this is pretty much invisible to whatever acapy (or any other issuer/verifier). If acapy establishes connection with a mobile device, the role of mediator agency is to receive messages sent by Acapy. So acapy doesn't really care about mediator agent implementation details.

PatrikStas (Fri, 12 Nov 2021 15:23:50 GMT):
so your setup could for now look like this: mobile [aries-vcx] --- mediator [vcxagency-node] --- acapy In the future, when we implement aries mediation protocols into vcxagency-node, the mediator component should become swappable

PatrikStas (Fri, 12 Nov 2021 15:23:50 GMT):
so your setup could for now look like this: mobile [aries-vcx] --- mediator [vcxagency-node] --- acapy In the future, when we implement aries mediation protocols into vcxagency-node, the mediator component should become swappable

PatrikStas (Fri, 12 Nov 2021 15:23:50 GMT):
so your setup could for now look like this: mobile [aries-vcx] --- mediator [vcxagency-node] --- acapy In the future, when we implement aries mediation protocols into vcxagency-node, the mediator component should become swappable

PatrikStas (Fri, 12 Nov 2021 15:23:50 GMT):
so your setup could for now look like this: mobile [aries-vcx] --- mediator [vcxagency-node] --- acapy In the future, when we implement aries mediation protocols into vcxagency-node (mediation server) and aries-vcx (mediation client), the mediator component should become swappable

PatrikStas (Fri, 12 Nov 2021 15:24:02 GMT):

PatrikStas (Fri, 12 Nov 2021 15:25:25 GMT):
Once again I've just accidentally pinned and unpinned a random message eh

PatrikStas (Fri, 12 Nov 2021 15:25:25 GMT):
Once again I've accidentally pinned and unpinned a random message eh

mateokurti (Fri, 12 Nov 2021 15:32:15 GMT):
Hmm, it makes perfectly sense. Thanks a lot!

mateokurti (Fri, 12 Nov 2021 15:33:10 GMT):
Another question that I have, which might be stupid, but I want to be sure. If I have two mobile agents (Android and iOS), I think that they can perfectly use the same mediator? So there is no need to run two services, right?

PatrikStas (Fri, 12 Nov 2021 15:33:42 GMT):
Yeah that's right. 1 deployment can be used by many clients

kukgini (Tue, 16 Nov 2021 02:55:59 GMT):

xcode_environment_variables.png

kukgini (Tue, 16 Nov 2021 02:56:09 GMT):
@mirgee @PatrikStas I found a solution to this. Before use VCXWrapper which is ConnectMeVcx, set VcxLogger like this: ``` print("init VCX logger.") VcxLogger.setDefault(nil) print("create VCX wrapper instance.") self.vcx = ConnectMeVcx() ``` Then in Xcode menu, select Product > Schema > Edit Schema. In the Pop-Up window, set RUST_LOG environment variables. (see screenshot) I hope this could be a little help.

kukgini (Tue, 16 Nov 2021 02:56:09 GMT):
@mirgee @PatrikStas I found a solution to this. Before use VCXWrapper which is ConnectMeVcx, set VcxLogger like this: ``` print("init VCX logger.") VcxLogger.setDefault(nil) print("create VCX wrapper instance.") self.vcx = ConnectMeVcx() ``` Then in Xcode menu, select Product > Schema > Edit Schema. In the pop-up window, set RUST_LOG environment variables. (see screenshot below) I hope this could be a little help.

kukgini (Tue, 16 Nov 2021 02:58:25 GMT):

xcode_environment_variables.png

kukgini (Tue, 16 Nov 2021 03:39:07 GMT):
This is my understanding of the procedure for setting up VCX (0.21.0) in mobile side. Can you confirm if this is the correct procedure? 1. create wallet (if not exists) 2. open main wallet 3. init vcx thread pool 4. open main pool 5. provision cloud agent

kukgini (Tue, 16 Nov 2021 03:39:07 GMT):
Hi here. This is my understanding of the procedure for setting up VCX (0.21.0) in mobile side. Can you confirm if this is the correct procedure? 1. create wallet (if not exists) 2. open main wallet 3. init vcx thread pool 4. open main pool 5. provision cloud agent

kukgini (Tue, 16 Nov 2021 03:39:07 GMT):
Hi here. This is my understanding of the procedure for setting up VCX (0.21.0) in mobile side. Can you confirm if this is the correct procedure? 1. create wallet (if not exists) 2. open main wallet 3. init vcx thread pool 4. open main pool 5. provision cloud agent 6. create agency client

kukgini (Tue, 16 Nov 2021 03:39:07 GMT):
Hi here. This is my understanding of the procedure for setting up VCX (0.21.0) in mobile side. Can you confirm if this is the correct procedure? 1. create wallet (if not exists) 2. open main wallet 3. init vcx thread pool 4. open main pool 5. provision cloud agent 6. create agency client 7. update webhook url

kukgini (Tue, 16 Nov 2021 03:39:07 GMT):
Hi here. This is my understanding of the procedure for setting up VCX (0.21.0) in mobile side. Can you confirm if this is the correct procedure? 1. create wallet (if not exists) 2. open main wallet 3. init vcx thread pool 4. open main pool 5. provision cloud agent 6. create agency client 7. update webhook url ---- now we can connect with issuer / verifier with invitation

kukgini (Tue, 16 Nov 2021 03:39:07 GMT):
Hi here. This is my understanding of the procedure for setting up VCX (0.21.0) in mobile side. Can you confirm if this is the correct procedure? 1. create wallet (if not exists) 2. open main wallet 3. init vcx thread pool 4. open main pool 5. provision cloud agent 6. create agency client ---- now i can connect with issuer / verifier with invitation through mediator endpoint.

kukgini (Tue, 16 Nov 2021 03:39:07 GMT):
Hi here. This is my understanding of the procedure for setting up VCX (0.21.0) in mobile side. Can you confirm if this is the correct procedure? 1. create wallet (if not exists) 2. open main wallet 3. init vcx thread pool 4. open main pool 5. provision cloud agent 6. create agency client ---- now mobile agent can connect with issuer / verifier with invitation through mediator endpoint.

mirgee (Tue, 16 Nov 2021 09:50:16 GMT):
Seems correct to me. This is not the only valid order; some of these steps could be swapped, but this order should work. (Note that for issuer, there is an extra step of creating a DID / verkey pair for issuing credentials)

PatrikStas (Tue, 16 Nov 2021 10:02:39 GMT):
yeah, it should work but I'd say it's more correct to do `init thread pool` before anything else

kukgini (Tue, 16 Nov 2021 10:08:14 GMT):
thank you for your advice @mirgee @PatrikStas :thumbsup:

mateokurti (Tue, 16 Nov 2021 15:28:23 GMT):
Hi! I am trying to run the VCX Agency Node (https://github.com/AbsaOSS/vcxagencynode/), but following the README, as I don't have much experience with Docker, I was unable to have it running. @mirgee helped a lot with the commands, but however I think that it would be better if the steps were in the channel so if someone else has the same problems, can find the solution.``` ```

mateokurti (Tue, 16 Nov 2021 15:28:23 GMT):
Hi! I am trying to run the VCX Agency Node (https://github.com/AbsaOSS/vcxagencynode/), but following the README, as I don't have much experience with Docker, I was unable to have it running. @mirgee helped a lot with the commands, but however I think that it would be better if the steps were in the channel so if someone else has the same problems, can find the solution. So far, I managed to build the `vcxagency-base` container with the following command: `./build.sh vcxagency-base:1.15.0`

mateokurti (Tue, 16 Nov 2021 15:28:23 GMT):
Hi! I am trying to run the VCX Agency Node (https://github.com/AbsaOSS/vcxagencynode/), but following the README, as I don't have much experience with Docker, I was unable to have it running. @mirgee helped a lot with the commands, but however I think that it would be better if the steps were in the channel so if someone else has the same problems, can find the solution. So far, I managed to build the `vcxagency-base` container with the following command: `./build.sh vcxagency-base:1.15.0` Also, building the `vcxagency-node` container with `docker build -t vcxagency-node:1.15.0 -f vcxagency-node/Dockerfile .`

mateokurti (Tue, 16 Nov 2021 15:28:23 GMT):
Hi! I am trying to run the VCX Agency Node (https://github.com/AbsaOSS/vcxagencynode/), but following the README, as I don't have much experience with Docker, I was unable to have it running. @mirgee helped a lot with the commands, but however I think that it would be better if the steps were in the channel so if someone else has the same problems, can find the solution. So far, I managed to build the `vcxagency-base` container with the following command: `./build.sh vcxagency-base:1.15.0` Also, building the `vcxagency-node` container with `docker build -t vcxagency-node:1.15.0 -f vcxagency-node/Dockerfile .` And running the postgres database: `docker run --name postgres -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres`

mateokurti (Tue, 16 Nov 2021 15:28:23 GMT):
Hi! I am trying to run the VCX Agency Node (https://github.com/AbsaOSS/vcxagencynode/), but following the README, as I don't have much experience with Docker, I was unable to have it running. @mirgee helped a lot with the commands, but however I think that it would be better if the steps were in the channel so if someone else has the same problems, can find the solution. So far, I managed to build the `vcxagency-base` container with the following command: `./build.sh vcxagency-base:1.15.0` Also, building the `vcxagency-node` container with `docker build -t vcxagency-node:1.15.0 -f vcxagency-node/Dockerfile .` And running the postgres database: `docker run --name postgres -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres` However, If I try to run the `vcxagency-node` container, I get the following error: ``` App configuration will be loaded from supplied environment variables. npm ERR! code ELIFECYCLE npm ERR! errno 255 npm ERR! vcxagency-node@0.3.1 serve: `NODE_ENV=production node src/index.js` npm ERR! Exit status 255 npm ERR! npm ERR! Failed at the vcxagency-node@0.3.1 serve script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/node/.npm/_logs/2021-11-16T15_25_39_992Z-debug.log ```

mateokurti (Tue, 16 Nov 2021 15:28:23 GMT):
Hi! I am trying to run the VCX Agency Node (https://github.com/AbsaOSS/vcxagencynode/), but following the README, as I don't have much experience with Docker, I was unable to have it running. @mirgee helped a lot with the commands, but however I think that it would be better if the steps were in the channel so if someone else has the same problems, can find the solution. So far, I managed to build the `vcxagency-base` container with the following command: `./build.sh vcxagency-base:1.15.0` Also, building the `vcxagency-node` container with `docker build -t vcxagency-node:1.15.0 -f vcxagency-node/Dockerfile .` And running the postgres database: `docker run --name postgres -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres` However, If I try to run the `vcxagency-node` container, I get the following error: ``` App configuration will be loaded from supplied environment variables. npm ERR! code ELIFECYCLE npm ERR! errno 255 npm ERR! vcxagency-node@0.3.1 serve: `NODE_ENV=production node src/index.js` npm ERR! Exit status 255 npm ERR! npm ERR! Failed at the vcxagency-node@0.3.1 serve script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/node/.npm/_logs/2021-11-16T15_25_39_992Z-debug.log ``` I'm aware that the process might be too simple, but I only had some basic knowledge of Docker before and I'm facing some difficulties with deploying it. My goal would be having it running on docker and configured to work with a Kubernetes cluster. Some suggestion would be more than welcome.

kukgini (Tue, 16 Nov 2021 23:33:46 GMT):
@mateokurti you need to set some environment variables.

kukgini (Tue, 16 Nov 2021 23:42:20 GMT):
STEP 1: building base image. ``` cd vcxagency-base ./build.sh vcxagency-base ``` STEP 2: change `vcxagency-node/Dockerfile` add some environment variables (ENV) like this (or just copy & paste below): ``` ARG AGENCY_BASE_IMAGE=vcxagency-base:1.15.0 FROM ${AGENCY_BASE_IMAGE} RUN npm install -g yarn USER node WORKDIR /home/node/easy-indysdk COPY ./easy-indysdk ./ WORKDIR /home/node/vcxagency-client COPY ./vcxagency-client ./ WORKDIR /home/node/vcxagency-node COPY ./vcxagency-node ./ USER root RUN chown -R node:node /home/node USER node RUN yarn install --production LABEL org.label-schema.schema-version="1.1.0" LABEL org.label-schema.name="vcxagency-node" LABEL org.label-schema.description="Node VCX Agency" ENV LOG_LEVEL ${LOG_LEVEL:-'true'} ENV LOG_ENABLE_INDYSDK ${LOG_ENABLE_INDYSDK:-'false'} ENV LOG_JSON_TO_CONSOLE ${LOG_JSON_TO_CONSOLE:-'true'} ENV LOG_LEVEL='debug' ENV LOG_ENABLE_INDYSDK=false ENV LOG_JSON_TO_CONSOLE=false ENV SERVER_PORT=8080 ENV SERVER_MAX_REQUEST_SIZE_KB=300 ENV SERVER_ENABLE_TLS=false ENV AGENCY_WALLET_NAME=vcxagency-node ENV AGENCY_DID=VsKV7grR1BUE29mG2Fm2kX ENV AGENCY_SEED_SECRET=0000000000000000000000000Forward ENV AGENCY_WALLET_KEY_SECRET=01234567890123456789 ENV AGENCY_TYPE=client ENV REDIS_URL=redis://redis:6379/0 ENV PG_STORE_HOST=postgres ENV PG_STORE_PORT=5432 ENV PG_STORE_ACCOUNT=postgres ENV PG_STORE_PASSWORD_SECRET=mysecretpassword ENV PG_STORE_DATABASE=agency-storage ENV PG_WALLET_ACCOUNT=postgres ENV PG_WALLET_PASSWORD_SECRET=mysecretpassword ENV PG_WALLET_ADMIN_ACCOUNT=postgres ENV PG_WALLET_ADMIN_PASSWORD_SECRET=mysecretpassword ENV PG_WALLET_URL=postgres:5432 ENV PG_WALLET_MAX_CONNECTIONS=90 ENV PG_WALLET_CONNECTION_TIMEOUT_MINS=30 EXPOSE ${SERVER_PORT} CMD ["npm", "run", "serve"] ``` STEP 3: build node image ``` ./dockerbuild.sh vcxagency-node -b . ``` STEP 4: change `vcxagency-node/docker-compose.yml` (or just copy & paste below) ``` version: '3.5' services: redis: container_name: redis image: redis:6.0.8 volumes: - ../ci/redis.conf:/usr/local/etc/redis/redis.conf ports: - "6379:6379" command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ] agency: container_name: agency image: vcxagency-node:0.3.1 ports: - "8080:8080" command: [ "npm", "run", "serve" ] postgres: image: postgres:10 container_name: postgres environment: - POSTGRES_PASSWORD=mysecretpassword ports: - '5432:5432' volumes: - pgsql-data:/var/lib/postgresql/data pgadmin: image: dpage/pgadmin4 container_name: pg_admin environment: - PGADMIN_DEFAULT_EMAIL=siner@pgadmin.com - PGADMIN_DEFAULT_PASSWORD=mysecretpassword ports: - '5555:80' volumes: - pgadmin-data:/var/lib/pgadmin volumes: pgsql-data: pgadmin-data ``` step 5: run docker-compose ``` docker-compose up ``` In this manner, you can expose vcxagency-node on port 8080

kukgini (Wed, 17 Nov 2021 01:25:26 GMT):
@mateokurti Initialize the node environment like this ``` npm cache clean --force rm package-lock.json yarn.lock rm -rf node_modules npm install ```

kukgini (Wed, 17 Nov 2021 02:56:12 GMT):
@mateokurti now i have same issue with you. it's weird because it has been working fine until yesterday.

kukgini (Wed, 17 Nov 2021 03:06:00 GMT):
@mateokurti i found a solution. please mind it as a development environment. in production, we need actual postgres database and redis server. Assuming you have built both the vcx base image and the vcx node image. ``` docker image ls | grep vcxagency vcxagency-node 0.3.1 6eccdf4336fc 17 minutes ago 501MB vcxagency-base 1.15.0 a935f0425c39 22 minutes ago 311MB vcxagency-base latest a935f0425c39 22 minutes ago 311MB ``` this go vcxagency-node ``` $ cd vcxagency-node ``` change docker-compose.yml like this: ``` version: '3.5' services: redis: container_name: redis image: redis:6.0.8 volumes: - ../ci/redis.conf:/usr/local/etc/redis/redis.conf ports: - "6379:6379" command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ] agency: container_name: agency image: vcxagency-node:0.3.1 environment: - RUST_LOG=debug - LOG_LEVEL=debug - LOG_ENABLE_INDYSDK=false - LOG_JSON_TO_CONSOLE=false - SERVER_PORT=8080 - SERVER_MAX_REQUEST_SIZE_KB=300 - SERVER_ENABLE_TLS=false - AGENCY_WALLET_NAME=vcxagency-node - AGENCY_DID=VsKV7grR1BUE29mG2Fm2kX - AGENCY_SEED_SECRET=0000000000000000000000000Forward - AGENCY_WALLET_KEY_SECRET=01234567890123456789 - AGENCY_TYPE=client - REDIS_URL=redis://redis:6379/0 - PG_STORE_HOST=postgres - PG_STORE_PORT=5432 - PG_STORE_ACCOUNT=postgres - PG_STORE_PASSWORD_SECRET=mysecretpassword - PG_STORE_DATABASE=agency-storage - PG_WALLET_ACCOUNT=postgres - PG_WALLET_PASSWORD_SECRET=mysecretpassword - PG_WALLET_ADMIN_ACCOUNT=postgres - PG_WALLET_ADMIN_PASSWORD_SECRET=mysecretpassword - PG_WALLET_URL=postgres:5432 - PG_WALLET_MAX_CONNECTIONS=90 - PG_WALLET_CONNECTION_TIMEOUT_MINS=30 ports: - "8080:8080" command: [ "npm", "run", "serve" ] postgres: image: postgres:10 container_name: postgres environment: - POSTGRES_PASSWORD=mysecretpassword ports: - '5432:5432' volumes: - pgsqldata:/var/lib/postgresql/data pgadmin: image: dpage/pgadmin4 container_name: pg_admin environment: - PGADMIN_DEFAULT_EMAIL=siner@pgadmin.com - PGADMIN_DEFAULT_PASSWORD=mysecretpassword ports: - '5555:80' volumes: - pgadmdata:/var/lib/pgadmin volumes: pgsqldata: pgadmdata: ``` this run all containers like this ``` $ docker-compose up ```

kukgini (Wed, 17 Nov 2021 03:06:00 GMT):
@mateokurti i found a solution. please mind it as a development environment. in production, we need actual postgres database and redis server. Assuming you have built both the vcx base image and the vcx node image. ``` $ docker image ls | grep vcxagency vcxagency-node 0.3.1 6eccdf4336fc 17 minutes ago 501MB vcxagency-base 1.15.0 a935f0425c39 22 minutes ago 311MB vcxagency-base latest a935f0425c39 22 minutes ago 311MB ``` change directory to vcxagency-node ``` $ cd vcxagency-node ``` change docker-compose.yml like this: ``` version: '3.5' services: redis: container_name: redis image: redis:6.0.8 volumes: - ../ci/redis.conf:/usr/local/etc/redis/redis.conf ports: - "6379:6379" command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ] agency: container_name: agency image: vcxagency-node:0.3.1 environment: - RUST_LOG=debug - LOG_LEVEL=debug - LOG_ENABLE_INDYSDK=false - LOG_JSON_TO_CONSOLE=false - SERVER_PORT=8080 - SERVER_MAX_REQUEST_SIZE_KB=300 - SERVER_ENABLE_TLS=false - AGENCY_WALLET_NAME=vcxagency-node - AGENCY_DID=VsKV7grR1BUE29mG2Fm2kX - AGENCY_SEED_SECRET=0000000000000000000000000Forward - AGENCY_WALLET_KEY_SECRET=01234567890123456789 - AGENCY_TYPE=client - REDIS_URL=redis://redis:6379/0 - PG_STORE_HOST=postgres - PG_STORE_PORT=5432 - PG_STORE_ACCOUNT=postgres - PG_STORE_PASSWORD_SECRET=mysecretpassword - PG_STORE_DATABASE=agency-storage - PG_WALLET_ACCOUNT=postgres - PG_WALLET_PASSWORD_SECRET=mysecretpassword - PG_WALLET_ADMIN_ACCOUNT=postgres - PG_WALLET_ADMIN_PASSWORD_SECRET=mysecretpassword - PG_WALLET_URL=postgres:5432 - PG_WALLET_MAX_CONNECTIONS=90 - PG_WALLET_CONNECTION_TIMEOUT_MINS=30 ports: - "8080:8080" command: [ "npm", "run", "serve" ] postgres: image: postgres:10 container_name: postgres environment: - POSTGRES_PASSWORD=mysecretpassword ports: - '5432:5432' volumes: - pgsqldata:/var/lib/postgresql/data pgadmin: image: dpage/pgadmin4 container_name: pg_admin environment: - PGADMIN_DEFAULT_EMAIL=siner@pgadmin.com - PGADMIN_DEFAULT_PASSWORD=mysecretpassword ports: - '5555:80' volumes: - pgadmdata:/var/lib/pgadmin volumes: pgsqldata: pgadmdata: ``` this run all containers like this ``` $ docker-compose up ```

kukgini (Wed, 17 Nov 2021 03:06:00 GMT):
@mateokurti i found a solution. please mind it as a development environment. in production, we need actual postgres database and redis server. Assuming you have built both the vcx base image and the vcx node image. ``` $ docker image ls | grep vcxagency vcxagency-node 0.3.1 6eccdf4336fc 17 minutes ago 501MB vcxagency-base 1.15.0 a935f0425c39 22 minutes ago 311MB vcxagency-base latest a935f0425c39 22 minutes ago 311MB ``` change directory to vcxagency-node ``` $ cd vcxagency-node ``` change docker-compose.yml like this (just copy & paste): ``` version: '3.5' services: redis: container_name: redis image: redis:6.0.8 volumes: - ../ci/redis.conf:/usr/local/etc/redis/redis.conf ports: - "6379:6379" command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ] agency: container_name: agency image: vcxagency-node:0.3.1 environment: - RUST_LOG=debug - LOG_LEVEL=debug - LOG_ENABLE_INDYSDK=false - LOG_JSON_TO_CONSOLE=false - SERVER_PORT=8080 - SERVER_MAX_REQUEST_SIZE_KB=300 - SERVER_ENABLE_TLS=false - AGENCY_WALLET_NAME=vcxagency-node - AGENCY_DID=VsKV7grR1BUE29mG2Fm2kX - AGENCY_SEED_SECRET=0000000000000000000000000Forward - AGENCY_WALLET_KEY_SECRET=01234567890123456789 - AGENCY_TYPE=client - REDIS_URL=redis://redis:6379/0 - PG_STORE_HOST=postgres - PG_STORE_PORT=5432 - PG_STORE_ACCOUNT=postgres - PG_STORE_PASSWORD_SECRET=mysecretpassword - PG_STORE_DATABASE=agency-storage - PG_WALLET_ACCOUNT=postgres - PG_WALLET_PASSWORD_SECRET=mysecretpassword - PG_WALLET_ADMIN_ACCOUNT=postgres - PG_WALLET_ADMIN_PASSWORD_SECRET=mysecretpassword - PG_WALLET_URL=postgres:5432 - PG_WALLET_MAX_CONNECTIONS=90 - PG_WALLET_CONNECTION_TIMEOUT_MINS=30 ports: - "8080:8080" command: [ "npm", "run", "serve" ] postgres: image: postgres:10 container_name: postgres environment: - POSTGRES_PASSWORD=mysecretpassword ports: - '5432:5432' volumes: - pgsqldata:/var/lib/postgresql/data pgadmin: image: dpage/pgadmin4 container_name: pg_admin environment: - PGADMIN_DEFAULT_EMAIL=siner@pgadmin.com - PGADMIN_DEFAULT_PASSWORD=mysecretpassword ports: - '5555:80' volumes: - pgadmdata:/var/lib/pgadmin volumes: pgsqldata: pgadmdata: ``` this run all containers like this ``` $ docker-compose up ```

kukgini (Wed, 17 Nov 2021 03:06:00 GMT):
@mateokurti i found a solution. please mind it as a development environment. in production, we need actual postgres database and redis server. Assuming you have built both the vcx base image and the vcx node image. ``` $ docker image ls | grep vcxagency vcxagency-node 0.3.1 6eccdf4336fc 17 minutes ago 501MB vcxagency-base 1.15.0 a935f0425c39 22 minutes ago 311MB ``` change directory to vcxagency-node ``` $ cd vcxagency-node ``` change docker-compose.yml like this (just copy & paste): ``` version: '3.5' services: redis: container_name: redis image: redis:6.0.8 volumes: - ../ci/redis.conf:/usr/local/etc/redis/redis.conf ports: - "6379:6379" command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ] agency: container_name: agency image: vcxagency-node:0.3.1 environment: - RUST_LOG=debug - LOG_LEVEL=debug - LOG_ENABLE_INDYSDK=false - LOG_JSON_TO_CONSOLE=false - SERVER_PORT=8080 - SERVER_MAX_REQUEST_SIZE_KB=300 - SERVER_ENABLE_TLS=false - AGENCY_WALLET_NAME=vcxagency-node - AGENCY_DID=VsKV7grR1BUE29mG2Fm2kX - AGENCY_SEED_SECRET=0000000000000000000000000Forward - AGENCY_WALLET_KEY_SECRET=01234567890123456789 - AGENCY_TYPE=client - REDIS_URL=redis://redis:6379/0 - PG_STORE_HOST=postgres - PG_STORE_PORT=5432 - PG_STORE_ACCOUNT=postgres - PG_STORE_PASSWORD_SECRET=mysecretpassword - PG_STORE_DATABASE=agency-storage - PG_WALLET_ACCOUNT=postgres - PG_WALLET_PASSWORD_SECRET=mysecretpassword - PG_WALLET_ADMIN_ACCOUNT=postgres - PG_WALLET_ADMIN_PASSWORD_SECRET=mysecretpassword - PG_WALLET_URL=postgres:5432 - PG_WALLET_MAX_CONNECTIONS=90 - PG_WALLET_CONNECTION_TIMEOUT_MINS=30 ports: - "8080:8080" command: [ "npm", "run", "serve" ] postgres: image: postgres:10 container_name: postgres environment: - POSTGRES_PASSWORD=mysecretpassword ports: - '5432:5432' volumes: - pgsqldata:/var/lib/postgresql/data pgadmin: image: dpage/pgadmin4 container_name: pg_admin environment: - PGADMIN_DEFAULT_EMAIL=siner@pgadmin.com - PGADMIN_DEFAULT_PASSWORD=mysecretpassword ports: - '5555:80' volumes: - pgadmdata:/var/lib/pgadmin volumes: pgsqldata: pgadmdata: ``` this run all containers like this ``` $ docker-compose up ```

kukgini (Wed, 17 Nov 2021 04:14:26 GMT):
the point is you need `redis` and `postgresql` database and you have to set some environment variables (see agency/environment above) to run vcxagency-node.

kukgini (Wed, 17 Nov 2021 04:14:26 GMT):
the point is you need `redis` and `postgresql` database and you have to set some environment variables (see agency/environment above) to run vcxagency-node in production mode.

kukgini (Wed, 17 Nov 2021 04:14:26 GMT):
the point is you need `redis` and `postgresql` database and you have to set some environment variables about it (see agency/environment above) to run vcxagency-node in production mode.

kukgini (Wed, 17 Nov 2021 08:03:28 GMT):
Hi here. When i try to connect with counterparty. I got following error: ``` connection connect. id=da43e0f2-509d-451e-8538-0a8a32dfadfc, handle=Optional(0), connectionType={"use_public_did":false} INFO|vcx::api_lib::api_c::connection|libvcx/src/api_lib/api_c/connection.rs:304 | vcx_connection_connect >>> ERROR|vcx::api_lib::api_c::connection|libvcx/src/api_lib/api_c/connection.rs:309 | vcx_connection_get_state - invalid handle TRACE|vcx::api_lib::api_c::vcx | libvcx/src/api_lib/api_c/vcx.rs:508 | vcx_get_current_error >>> error_json_p: 0x16d16e4b8 TRACE|vcx::api_lib::api_c::vcx | libvcx/src/api_lib/api_c/vcx.rs:513 | vcx_get_current_error: <<< connection connect failed. error= The operation couldn’t be completed. (VcxErrorDomain error 1003.) ``` The problem was I passed wrong connection handle value (in this case '0'). This is natural. But, error code `1003` is not defined in vcx `0.23.0`. So, with this error code. I think it will be hard to find out what is wrong.

kukgini (Wed, 17 Nov 2021 08:03:28 GMT):
Hi here. When i try to connect with counterparty. I got following error: ``` connection connect. id=da43e0f2-509d-451e-8538-0a8a32dfadfc, handle=Optional(0), connectionType={"use_public_did":false} INFO|vcx::api_lib::api_c::connection|libvcx/src/api_lib/api_c/connection.rs:304 | vcx_connection_connect >>> ERROR|vcx::api_lib::api_c::connection|libvcx/src/api_lib/api_c/connection.rs:309 | vcx_connection_get_state - invalid handle TRACE|vcx::api_lib::api_c::vcx | libvcx/src/api_lib/api_c/vcx.rs:508 | vcx_get_current_error >>> error_json_p: 0x16d16e4b8 TRACE|vcx::api_lib::api_c::vcx | libvcx/src/api_lib/api_c/vcx.rs:513 | vcx_get_current_error: <<< connection connect failed. error= The operation couldn’t be completed. (VcxErrorDomain error 1003.) ``` The problem was I passed wrong connection handle value (in this case '0'). This is natural. But, error code `1003` is not defined in vcx `0.23.0`. So, with this error code. I think it would be hard to find out what is wrong.

kukgini (Wed, 17 Nov 2021 08:03:28 GMT):
Hi here. When i try to connect with counterparty. I got following error: ``` connection connect. id=da43e0f2-509d-451e-8538-0a8a32dfadfc, handle=Optional(0), connectionType={"use_public_did":false} INFO|vcx::api_lib::api_c::connection|libvcx/src/api_lib/api_c/connection.rs:304 | vcx_connection_connect >>> ERROR|vcx::api_lib::api_c::connection|libvcx/src/api_lib/api_c/connection.rs:309 | vcx_connection_get_state - invalid handle TRACE|vcx::api_lib::api_c::vcx | libvcx/src/api_lib/api_c/vcx.rs:508 | vcx_get_current_error >>> error_json_p: 0x16d16e4b8 TRACE|vcx::api_lib::api_c::vcx | libvcx/src/api_lib/api_c/vcx.rs:513 | vcx_get_current_error: <<< connection connect failed. error= The operation couldn’t be completed. (VcxErrorDomain error 1003.) ``` The problem was I passed wrong connection handle value (in this case '0'). This is natural. But, error code `1003` is not defined in vcx `0.21.0`. So, with this error code. I think it would be hard to find out what is wrong.

kukgini (Wed, 17 Nov 2021 08:03:28 GMT):
Hi here. When i try to connect with counterparty. I got following error: ``` connection connect. id=da43e0f2-509d-451e-8538-0a8a32dfadfc, handle=Optional(0), connectionType={"use_public_did":false} INFO|vcx::api_lib::api_c::connection|libvcx/src/api_lib/api_c/connection.rs:304 | vcx_connection_connect >>> ERROR|vcx::api_lib::api_c::connection|libvcx/src/api_lib/api_c/connection.rs:309 | vcx_connection_get_state - invalid handle TRACE|vcx::api_lib::api_c::vcx | libvcx/src/api_lib/api_c/vcx.rs:508 | vcx_get_current_error >>> error_json_p: 0x16d16e4b8 TRACE|vcx::api_lib::api_c::vcx | libvcx/src/api_lib/api_c/vcx.rs:513 | vcx_get_current_error: <<< connection connect failed. error= The operation couldn’t be completed. (VcxErrorDomain error 1003.) ``` The problem was I passed wrong connection handle value (in this case '0'). This is natural. But, error code `1003` is not defined in vcx `0.23.0`. So, with this error code. I think it would be hard to find out what is wrong.

kukgini (Wed, 17 Nov 2021 08:43:46 GMT):
Hi here. I think i found type mismatch in vcx `0.21.0`. As you can see, `ConnecMeVcx.h` define connectionConnect methods connectionHandle type as VcxHandle (aka Int32). https://github.com/hyperledger/aries-vcx/blob/55ad254293e4dd8ff33c9f46cf6a62c079dbaaaf/wrappers/ios/vcx/ConnectMeVcx.h#L111 But before that, connectionCreateWithInvite returns connectionHandle as NSInteger (aka Int which can be 64bit in some iOS) https://github.com/hyperledger/aries-vcx/blob/55ad254293e4dd8ff33c9f46cf6a62c079dbaaaf/wrappers/ios/vcx/ConnectMeVcx.h#L107 So, sometimes I can't connect with conterparty.

kukgini (Wed, 17 Nov 2021 08:43:46 GMT):
Hi here. I think i found type mismatch in vcx `0.21.0`. As you can see, `ConnecMeVcx.h` define `connectionConnect` methods connectionHandle type as `VcxHandle` (aka `Int32`). https://github.com/hyperledger/aries-vcx/blob/55ad254293e4dd8ff33c9f46cf6a62c079dbaaaf/wrappers/ios/vcx/ConnectMeVcx.h#L111 But before that, `connectionCreateWithInvite` returns connectionHandle as `NSInteger` (aka `Int` which can be 64bit in some iOS) https://github.com/hyperledger/aries-vcx/blob/55ad254293e4dd8ff33c9f46cf6a62c079dbaaaf/wrappers/ios/vcx/ConnectMeVcx.h#L107 So, sometimes I can't connect with conterparty.

kukgini (Wed, 17 Nov 2021 08:43:46 GMT):
Hi here. I think i found a type mismatch in vcx `0.21.0`. As you can see, `ConnecMeVcx.h` define `connectionConnect` methods connectionHandle type as `VcxHandle` (aka `Int32`). https://github.com/hyperledger/aries-vcx/blob/55ad254293e4dd8ff33c9f46cf6a62c079dbaaaf/wrappers/ios/vcx/ConnectMeVcx.h#L111 But before that, `connectionCreateWithInvite` returns connectionHandle as `NSInteger` (aka `Int` which can be 64bit in some iOS) https://github.com/hyperledger/aries-vcx/blob/55ad254293e4dd8ff33c9f46cf6a62c079dbaaaf/wrappers/ios/vcx/ConnectMeVcx.h#L107 So, sometimes I can't connect with conterparty.

kukgini (Wed, 17 Nov 2021 08:43:46 GMT):
Hi here. I think i found a type mismatch in vcx `0.23.0`. As you can see, `ConnecMeVcx.h` define `connectionConnect` methods connectionHandle type as `VcxHandle` (aka `Int32`). https://github.com/hyperledger/aries-vcx/blob/55ad254293e4dd8ff33c9f46cf6a62c079dbaaaf/wrappers/ios/vcx/ConnectMeVcx.h#L111 But before that, `connectionCreateWithInvite` returns connectionHandle as `NSInteger` (aka `Int` which can be 64bit in some iOS) https://github.com/hyperledger/aries-vcx/blob/55ad254293e4dd8ff33c9f46cf6a62c079dbaaaf/wrappers/ios/vcx/ConnectMeVcx.h#L107 So, sometimes I can't connect with conterparty.

mateokurti (Wed, 17 Nov 2021 09:23:37 GMT):

docker.PNG

mateokurti (Wed, 17 Nov 2021 09:25:04 GMT):
If I run it with `docker-compose up` without changing `docker-compose.yml`, it works and the running containers are as above. If I replace the content of `docker-compose.yml` with the following content that you sent, another error is ocurred.

mateokurti (Wed, 17 Nov 2021 09:25:04 GMT):
If I run it with `docker-compose up` without changing `docker-compose.yml`, it works and the running containers are as above. If I replace the content of `docker-compose.yml` with the following content that you sent, another error ocurres.

kukgini (Wed, 17 Nov 2021 09:26:32 GMT):
@mateokurti can you share what error is that?

mateokurti (Wed, 17 Nov 2021 09:29:00 GMT):

errr.PNG

kukgini (Wed, 17 Nov 2021 09:31:32 GMT):
@mateokurti as you can see. vcxagency-node version has to be 0.3.1. only vcxagency-base version is 1.15.0. run this command and retry ``` docker tag vcxagency-node:1.15.0 vcxagency-node:0.3.1 ```

mateokurti (Wed, 17 Nov 2021 09:49:25 GMT):
@kukgini Thank you. It worked. Only one error apparently, but I'll try to run the steps from the beginning once again. ``` agency | [2021-11-17 09:37:53.039] [entity-fwa] [info] [expressRequestId=undefined]: FWA Assuring its wallet 'vcxagency-node' exists postgres | 2021-11-17 09:37:54.858 UTC [85] FATAL: database "wallets" does not exist agency | Failed to build FWA agent: Error: Unexpected error trying to create a wallet: 210 "IndyError: 210\n at Object.callback (/home/node/vcxagency-node/node_modules/indy-sdk/src/wrapIndyCallback.js:15:10)\n at Object.callbackTrampoline (internal/async_hooks.js:126:14)" ```

kukgini (Wed, 17 Nov 2021 09:55:57 GMT):
210 means `Storage error occurred during wallet operation`. It's come from indy-sdk. maybe there is some problem between agency and postgres.

kukgini (Wed, 17 Nov 2021 09:55:57 GMT):
@mateokurti error code `210` means `Storage error occurred during wallet operation`. It's come from indy-sdk. maybe there is some problem between agency and postgres.

kukgini (Wed, 17 Nov 2021 10:00:00 GMT):
@mateokurti changing `LOG_ENABLE_INDYSDK=false` to `LOG_ENABLE_INDYSDK=true` in docker-compose.yml give you more detailed indy log.

kukgini (Wed, 17 Nov 2021 10:00:00 GMT):
@mateokurti changing `LOG_ENABLE_INDYSDK=false` to `true` in `docker-compose.yml` will give you more detailed indy-sdk log.

kukgini (Thu, 18 Nov 2021 00:38:53 GMT):
Hi here. A complete build script is provided, which is a huge help to me. However, the ios wrapper build did not work on my MacBook due to the libzmq-ios patch failure. You might consider adding these options. (see the patch below) ``` diff --git a/wrappers/ios/ci/build.sh b/wrappers/ios/ci/build.sh index 3e78ed592..61cd389b6 100755 --- a/wrappers/ios/ci/build.sh +++ b/wrappers/ios/ci/build.sh @@ -100,7 +100,7 @@ build_libzmq() { fi pushd $OUTPUT_DIR/libzmq-ios - git apply $SCRIPT_DIR/patches/libzmq.rb.patch + git apply --ignore-space-change --ignore-whitespace $SCRIPT_DIR/patches/libzmq.rb.patch ./libzmq.rb popd } ``` I referenced this q&a: https://stackoverflow.com/questions/4770177/git-patch-does-not-apply

PatrikStas (Thu, 18 Nov 2021 09:36:34 GMT):
hi I've just run into this recently myself when I was building ios locally

PatrikStas (Thu, 18 Nov 2021 09:37:11 GMT):
it's because you've run the script before

PatrikStas (Thu, 18 Nov 2021 09:37:18 GMT):
and the patch has been already applied

PatrikStas (Thu, 18 Nov 2021 09:37:21 GMT):
in directory /tmp/artifacts/indy-sdk

PatrikStas (Thu, 18 Nov 2021 09:38:15 GMT):
...we should improve the ios build script, it's been mostly optimized to be run in CI, but sometimes it's handy to run locally

PatrikStas (Thu, 18 Nov 2021 09:38:32 GMT):
by the way, are you aware there are pre-build ios artifacts? You don't necessarily have to build ios yourself

kukgini (Thu, 18 Nov 2021 09:48:40 GMT):
yes. sure. i am aware of it. I'm just trying to prepare an environment where I can test myself in case I get to fix a bug or write an improved version.

kukgini (Thu, 18 Nov 2021 09:48:40 GMT):
sure. i am aware of it. I'm just trying to prepare an environment where I can test myself in case I change the vcx source code.

mateokurti (Thu, 18 Nov 2021 10:35:40 GMT):
Hi @PatrikStas @mirgee ! I read this https://github.com/AbsaOSS/vcxagencynode/pull/117 ``` Use mysql wallet implementation instead of pgsql plugin ```

mateokurti (Thu, 18 Nov 2021 10:35:40 GMT):
Hi @PatrikStas @mirgee ! I read this https://github.com/AbsaOSS/vcxagencynode/pull/117 ``` Use mysql wallet implementation instead of pgsql plugin ``` What does it mean? Is the mediator agency going to use mysql instead of pgsql?

mateokurti (Thu, 18 Nov 2021 10:35:40 GMT):
Hi @PatrikStas @mirgee ! I read this https://github.com/AbsaOSS/vcxagencynode/pull/117 ``` Use mysql wallet implementation instead of pgsql plugin ``` What does it mean? Is the mediator agency going to use mysql instead of pgsql? Should I consider anything about this now that I'm trying to deploy the VCXAgency-Node?

mirgee (Thu, 18 Nov 2021 10:58:23 GMT):
Yes, you are correct - the vcxagency is going to use indy-vdr-tools instead of indy-sdk (it's a fork of indy-sdk which is maintained, unlike indy-sdk) and hence use mysql instead of pgsql (which will improve performance considerably)

mirgee (Thu, 18 Nov 2021 10:58:23 GMT):
Yes, you are correct - vcxagency is going to use indy-vdr-tools instead of indy-sdk (it's a fork of indy-sdk which is maintained, unlike indy-sdk) and hence use mysql instead of pgsql (which will improve performance considerably)

mirgee (Thu, 18 Nov 2021 10:59:51 GMT):
The only implication for you is that once the PR is merged, you will need to swap pgsql for mysql to reap the performance benefits

mateokurti (Thu, 18 Nov 2021 11:05:36 GMT):
It sounds interesting. Is there any timeline for this?

mirgee (Thu, 18 Nov 2021 11:06:48 GMT):
It will be merged very soon.

kukgini (Thu, 18 Nov 2021 13:15:12 GMT):
Hello @PatrikStas @mirgee , Referring to this article (https://bit.ly/3npdNCe), this patch might fix the iOS wrapper issue in Xcode 12.4 (https://bit.ly/3x0lbHp). The build was successful, at least on my MacBook. ``` diff --git a/libzmq.rb b/libzmq.rb index 5d50af6..3533377 100755 --- a/libzmq.rb +++ b/libzmq.rb @@ -21,10 +21,10 @@ LIBNAME="libzmq.a" ROOTDIR=File.absolute_path(File.dirname(__FILE__)) LIBSODIUM_DIST=File.join(ROOTDIR, "dist") VALID_ARHS_PER_PLATFORM = { - "iOS" => ["armv7", "armv7s", "arm64", "i386", "x86_64"], - "macOS" => ["x86_64"], - "tvOS" => ["arm64", "x86_64"], - "watchOS" => ["armv7k", "i386"], + "iOS" => ["arm64", "x86_64"], + "macOS" => [], + "tvOS" => [], + "watchOS" => [], } DEVELOPER = `xcode-select -print-path`.chomp @@ -255,6 +255,8 @@ for platform in PLATFORMS "--enable-static", "--host=#{host}", "--with-libsodium=#{LIBSODIUM_DIST}/#{platform}", + "--disable-perf", + "--disable-curve-keygen", ] exit 1 unless system(configure_cmd.join(" ")) ```

kukgini (Thu, 18 Nov 2021 13:15:12 GMT):
Hello @PatrikStas @mirgee , Referring to this code (https://bit.ly/3npdNCe), this patch might fix the iOS wrapper issue in Xcode 12.4 (https://bit.ly/3x0lbHp). The build was successful, at least on my MacBook. ``` diff --git a/libzmq.rb b/libzmq.rb index 5d50af6..3533377 100755 --- a/libzmq.rb +++ b/libzmq.rb @@ -21,10 +21,10 @@ LIBNAME="libzmq.a" ROOTDIR=File.absolute_path(File.dirname(__FILE__)) LIBSODIUM_DIST=File.join(ROOTDIR, "dist") VALID_ARHS_PER_PLATFORM = { - "iOS" => ["armv7", "armv7s", "arm64", "i386", "x86_64"], - "macOS" => ["x86_64"], - "tvOS" => ["arm64", "x86_64"], - "watchOS" => ["armv7k", "i386"], + "iOS" => ["arm64", "x86_64"], + "macOS" => [], + "tvOS" => [], + "watchOS" => [], } DEVELOPER = `xcode-select -print-path`.chomp @@ -255,6 +255,8 @@ for platform in PLATFORMS "--enable-static", "--host=#{host}", "--with-libsodium=#{LIBSODIUM_DIST}/#{platform}", + "--disable-perf", + "--disable-curve-keygen", ] exit 1 unless system(configure_cmd.join(" ")) ```

mirgee (Thu, 18 Nov 2021 13:17:52 GMT):
Hi, I am not sure if we are talking about the same thing, but error code 1003 is defined in `aries_vcx/src/utils/error.rs` on line 16

mirgee (Thu, 18 Nov 2021 13:18:53 GMT):
Hmm, strange we haven't encountered issues related to this... Good catch nonetheless! A PR with a fix would be very welcome :)

kukgini (Thu, 18 Nov 2021 13:21:10 GMT):
Oh. I guess I was looking at the wrong error code (agency_client/src/utils/error_utils.rs). thank you.

kukgini (Thu, 18 Nov 2021 13:23:50 GMT):
I'm not yet able to figure out the impact between changing the return value of `connectionCreateWithInvite` from `NSInteger` to `VcxHandle` and changing everything else from `VcxHandle` to `NSInteger` .

kukgini (Thu, 18 Nov 2021 13:41:31 GMT):
However, It is weird because unlike other error message. 1003 just return error code with message `The operation couldn’t be completed.` instead of `Invalid Connection Handle`.

kukgini (Thu, 18 Nov 2021 13:41:31 GMT):
However, It is weird because unlike any other error message. 1003 just return error code with message `The operation couldn’t be completed.` instead of `Invalid Connection Handle`.

mirgee (Thu, 18 Nov 2021 13:54:10 GMT):
I am not familiar with iOS development, but it seems that `The operation couldn’t be completed. (error kind)` is unrelated to the library but rather is a common error message format on iOS? Either way, it seems the error kinds are not translating to iOS messages as they should - you are right that it should say `Invalid Connection Handle` instead of `VcxErrorDomain error 1003` on iOS as well

kukgini (Fri, 19 Nov 2021 04:08:07 GMT):
@mirgee I think i can make a PR for this. Which branch would you like to put it in? `main` branch is just ok? or how about `ci/experement-ios` branch?

kukgini (Mon, 22 Nov 2021 08:57:12 GMT):
Hi here. I am just wondering. What is `FSM`stand for in `Aries FSM module`?

mirgee (Mon, 22 Nov 2021 09:34:34 GMT):
Hi kukgini, it means finite state machine

mirgee (Mon, 22 Nov 2021 09:36:51 GMT):
Each connection, holder, issuer, verifier, prover is represented internally as a state machine

kukgini (Mon, 22 Nov 2021 09:40:52 GMT):
@mirgee then it's state should be persisted somewhere external storage. i guess it would be postgrasql in mediator side and sqlite in mobile side. Am i correct?

mirgee (Mon, 22 Nov 2021 09:44:34 GMT):
No, the state itself is not persisted - the persistence is left to the user of the library (serialize the object -> store in a db of choice -> retrieve from db -> deserialize) - it allows the user more granular control of what gets stored, to choose whatever database they want, etc.

mirgee (Mon, 22 Nov 2021 09:45:38 GMT):
The pgsql and sqlite are for the indy wallet - storage internal to libindy

kukgini (Mon, 22 Nov 2021 09:46:10 GMT):
Oh, i see. that makes sense.

kukgini (Mon, 22 Nov 2021 09:46:41 GMT):
@mirgee I made a PR for `ios-experimental` branch to fix build problem in latest xcode version (above 12.4). would you look at it? https://github.com/hyperledger/aries-vcx/pull/381

kukgini (Mon, 22 Nov 2021 09:46:41 GMT):
@mirgee I made a PR for `ios-experimental` branch to fix build problem in latest xcode version (above 12.4). would you look at it? https://github.com/hyperledger/aries-vcx/pull/381 I disabled some features in libzmq. I think that these features is not used through the source code search of indy-sdk.

mirgee (Mon, 22 Nov 2021 10:15:53 GMT):
LGTM! We are currently using xcode version 11 in the CI so we have not encountered this problem yet, but eventually would. Thank you!

PatrikStas (Mon, 22 Nov 2021 10:20:16 GMT):
@kukgini amazing I was testing 12.4 build couple days ago and failed. Currently we prioritize to finish libindy ---> vdr_tools migration where I am encountering some build issues, but as soon as that is done we can migrate to 12.4. Thanks a lot!

kukgini (Mon, 22 Nov 2021 10:22:03 GMT):
@mirgee @PatrikStas I 'm trying to make PR for fix handler type mismatch that i mentioned a few days ago. but, it could be a breaking change. is it ok with the AriesVcx community? or I have to consider backwards compatibility?

PatrikStas (Mon, 22 Nov 2021 10:25:21 GMT):
It's alright kukgini, we are in a phase where we still do breaking changes every once in a while.

mateokurti (Mon, 22 Nov 2021 12:57:26 GMT):
Hey there! Can someone explain what the differences of those configs are https://github.com/AbsaOSS/vcxagencynode/tree/master/vcxagency-node/config ? I see that two of them are enterprise and one client. Between enterprises, one is TLS and one not (which also does not require Redis?).

mirgee (Mon, 22 Nov 2021 13:31:16 GMT):
Hi mateokurti, you pretty much got it - ca stands for client agency, ea stands for enterprise agency, and client agency requires redis. In our setup, we use enterprise config for the issuer / verifier agency, and client agency for the holder / prover. Redis is not stricly necessary, it just speeds up polling of new messages. I am not sure I am answering your question, can you be more specific?

mirgee (Mon, 22 Nov 2021 13:31:16 GMT):
Hi mateokurti, you pretty much got it - ca stands for client agency, ea stands for enterprise agency, and client agency requires redis. In our setup, we use enterprise config for the issuer / verifier agency, and client agency for the holder / prover. Redis is not stricly necessary, it just speeds up polling of new messages. I am not sure I am answering your question however, can you be more specific, please?

mateokurti (Mon, 22 Nov 2021 17:29:00 GMT):
@mirgee Sorry for not being clearer, but yes, you have understand the question right. I got the answers. However, I don't quite get the Enterprise Agency. Why there is need to mediate the Enterprise at the first place?

mirgee (Mon, 22 Nov 2021 17:32:34 GMT):
@mateokurti Good question :) The answer is it adheres a separation of concerns better and and it scales easily, but you are correct it is not necessary, and we have plans to rewrite the agency into rust and make it a part of aries-vcx

mateokurti (Mon, 22 Nov 2021 21:22:36 GMT):
It sound interesting. I'm loving the roadmap! Thanks for the answers and help. Much appreciation. I managed to have the agency running with docker and kubernetes. :D

mateokurti (Mon, 22 Nov 2021 21:23:45 GMT):
And one last question (which might be stupid, sorry). You've used those values. Which of those can and should I change? ``` AGENCY_DID=VsKV7grR1BUE29mG2Fm2kX AGENCY_SEED_SECRET=0000000000000000000000000Forward AGENCY_WALLET_KEY_SECRET=01234567890123456789 ```

mateokurti (Mon, 22 Nov 2021 21:24:27 GMT):
I saw that this DID is also present in some other places https://indyscan.io/tx/sovbuilder/domain/791

mirgee (Mon, 22 Nov 2021 21:38:31 GMT):
You can change all of them, you just have to make sure the agency DID is a valid did generated using the seed, see the section V. here: https://docs.google.com/document/d/1sXZoN18lpFoAF075QoptofwDV_1otUylPGFKRQnA56E/edit As for the key secret, it is just the agency wallet password

mirgee (Mon, 22 Nov 2021 21:39:38 GMT):
Importantly, those configs suffixed with `_SECRET` should be kept secret (as you might have guessed) :)

mirgee (Mon, 22 Nov 2021 21:41:10 GMT):
If you change these values, don't forget to change the `AgencyClientConfig` in aries-vcx when connecting to the agency

mirgee (Mon, 22 Nov 2021 21:41:10 GMT):
If you change these values, don't forget to change the `AgencyClientConfig` in aries-vcx when connecting to the agency correspondingly

mateokurti (Tue, 23 Nov 2021 11:22:03 GMT):
@mirgee ` Unhandled error. Application will be terminated. Error: Configuration for agency of type 'client' must have REDIS_URL specified.`. I think that it is stricly necessary.

mirgee (Tue, 23 Nov 2021 11:26:18 GMT):
@mateocervino It is necessary for client agency type, yes

mirgee (Tue, 23 Nov 2021 11:26:18 GMT):
@mateokurti It is necessary for client agency type, yes

mateokurti (Tue, 23 Nov 2021 11:27:01 GMT):
Okay, I misunderstood you before. Thank you!

mateokurti (Tue, 23 Nov 2021 15:55:48 GMT):
Hi again! I am curious about the role of pgadmin in the agency. Is it necessary or is it just to have an interface to connect to the database? Also, is it needed a statefulset or simple deployment for redis?

mirgee (Tue, 23 Nov 2021 16:35:21 GMT):
I guess the role of pgadmin is to create the wallet database and make migrations, and I don't think you need persistent volumes for redis, but @PatrikStas is better equipped to answer this

kukgini (Wed, 24 Nov 2021 04:27:19 GMT):
@mateokurti I'm not sure we are on same page. But if you are saying about the docker-composer service what i gave you last week, it is just a GUI interface to postgres database.

kukgini (Wed, 24 Nov 2021 04:52:07 GMT):
Hi here. AFAIK. Issue credential protocol can be started with issuer's offering. In iOS wrapper, I wonder which api can get credential handle which is acapy issuer offered?

mirgee (Wed, 24 Nov 2021 09:23:55 GMT):
Hi @kukgini , `credentialCreateWithOffer` in iOS API takes in an `offer` string argument and returns credential handle

kukgini (Wed, 24 Nov 2021 10:07:08 GMT):
Hi @mirgee Always appreciate your attention. Isn't that the api the issuer uses when offering to the holder? I'm looking for an api that receives what AcaPy issuer offers through mediator.

mirgee (Wed, 24 Nov 2021 10:09:45 GMT):
Then this is the function you are looking for :) You need to download the offer from acapy and pass it to `credentialCreateWithOffer`

kukgini (Wed, 24 Nov 2021 23:51:48 GMT):
My understanding is: When `AcaPy` sent credential offer to mediator, download credential offer from mediator with `downloadMessagesV2` then extract credential information and pass it to `credentialCreateWithOffer`. Is it correct? @mirgee

mateokurti (Wed, 24 Nov 2021 23:52:06 GMT):
Hi guys! I have a suggestion. Wouldn't it be nice to have the the `vcxagency-node` in DockerHub? I think it can be possible and it might make the deployment easier. What do you think?

mirgee (Thu, 25 Nov 2021 09:43:58 GMT):
That's correct, @kukgini . You can find an implementation of that in `agents/node/vcxagent-core/src/services/service-cred-holder.js` (except it uses node wrapper instead of objective c wrapper - apologies for not providing an up-to-date demo in obj. c). Another way we could allow to do this is to expose a function which would create a Holder in an initial state and and allow to call `update_state` with an existing connection handle as an argument. It would then download the offer automatically and modified the SM automatically. However, this would not allow you the correct offer if multiple of them arrived from the connection.

mirgee (Thu, 25 Nov 2021 09:46:55 GMT):
Thanks for the suggestion! You can use vcxagency-node from github container registry, just try `docker pull ghcr.io/absaoss/vcxagencynode/vcxagency-node:1.0.0`

kukgini (Thu, 25 Nov 2021 14:00:02 GMT):
@mirgee Good to know. Is there any reason that version mismatch in source code (0.3.1) and the docker image (1.0.0) ?

mirgee (Thu, 25 Nov 2021 19:47:58 GMT):
@kukgini I don't see a mismatch - you are probably looking at an outdated revision of the source code

kukgini (Sat, 27 Nov 2021 00:13:45 GMT):
Hi here. I made an issue with database connection error message. (see: https://bit.ly/3nVonRw) . would you like to look at it?

kukgini (Sat, 27 Nov 2021 03:06:15 GMT):
Hi. here. I made a PR for fix handler type mismatch in iOS wrapper that I mentioned a few weeks ago. (see: https://bit.ly/3lebe4j). It will be a breaking change for iOS developers. would you like to look at it? cc: @mirgee @PatrikStas

kukgini (Sat, 27 Nov 2021 03:06:15 GMT):
Hi. here. I made a PR for fix handler type mismatch in iOS wrapper that I mentioned a few weeks ago. It will be a breaking change for iOS developers. (see: https://bit.ly/3lebe4j). would you like to look at it? cc: @mirgee @PatrikStas

kukgini (Sat, 27 Nov 2021 05:23:40 GMT):
ㅏㅕㅏ햐ㅜㅑ

mirgee (Sat, 27 Nov 2021 11:01:18 GMT):
Replied

PatrikStas (Wed, 01 Dec 2021 10:09:56 GMT):
hi @kukgini, would you mind to resubmit this PR https://github.com/hyperledger/aries-vcx/pull/381 ? The PR was previously merged into ios ci branch I was working on, but due some git ops - squasing, rebasing etc. that branch is now left behind in favor of new updated ios ci branches.

kukgini (Wed, 01 Dec 2021 13:33:20 GMT):
@PatrikStas Of course. Which branch would you like to submit my PR to?

PatrikStas (Wed, 01 Dec 2021 13:40:21 GMT):
@kukgini you can make it against `main` branch

kukgini (Wed, 01 Dec 2021 23:37:02 GMT):
I pushed PR in main branch (see: https://bit.ly/3xNKmxo). but failed check at `CI / publish-libvcx`. It it ok?

PatrikStas (Thu, 02 Dec 2021 10:40:40 GMT):
Oh I see, that's alright, just an access issue. We should probably skip that job for PRs from forks to avoid this failure

PatrikStas (Thu, 02 Dec 2021 10:41:13 GMT):
Anyway it's doesn't matter :-) We'll get your PR merged after this https://github.com/hyperledger/aries-vcx/pull/385

kukgini (Fri, 03 Dec 2021 03:57:39 GMT):
Hi here. I'm not sure if it's appropriate to ask here, but while checking the vdr-tools source code, I found some codes about `cheqd`. Do you know about it?

kukgini (Fri, 03 Dec 2021 03:57:39 GMT):
Hi here. I'm not sure if it's appropriate to ask here, but while checking the vdr-tools source code, I found some codes about `cheqd`. Besides, cheqd seems to have another fork of vdr-tools. (see:https://github.com/cheqd/cheqd-sdk) Do you know about it?

kukgini (Fri, 03 Dec 2021 03:57:39 GMT):
Hi here. I'm not sure if it's appropriate to ask here, but while checking the vdr-tools source code, I found some codes about `cheqd`. Besides, cheqd seems to have another fork of vdr-tools. (see:https://github.com/cheqd/cheqd-sdk) Do you know what it is?

mirgee (Fri, 03 Dec 2021 10:14:37 GMT):
Hi. I also noticed they have their own repo where they seem to be mainly merging upstream changes from probably from evernym repo. Not sure what their plans for it are.

kukgini (Mon, 06 Dec 2021 12:07:42 GMT):
It seems like current `vdr-tools` can use (or plan to use) the cheqd ledger instead indy ledger when enabling the 'cheqd' feature. (see: https://bit.ly/3IrCOVJ) And It seems that this blockchain has recently started running its mainnet (see: https://bit.ly/3lyLFLF)

PatrikStas (Thu, 09 Dec 2021 10:47:56 GMT):
Yep that's right, building vdr-tools on osx or linux doesn't work out of the box because of the mentioned dependencies. I submitted this PR to solve it https://gitlab.com/evernym/verity/vdr-tools/-/merge_requests/152

PatrikStas (Thu, 09 Dec 2021 10:47:56 GMT):
Yep that's right, also building vdr-tools on osx or linux doesn't work out of the box because of the mentioned dependencies. I submitted this PR to solve it https://gitlab.com/evernym/verity/vdr-tools/-/merge_requests/152

PatrikStas (Thu, 09 Dec 2021 10:47:56 GMT):
Yep that's right, also building vdr-tools on osx or linux doesn't work out of the box because of the mentioned dependencies (need to have some cosmos/tendermind libraries) I submitted this PR to solve it https://gitlab.com/evernym/verity/vdr-tools/-/merge_requests/152

PatrikStas (Thu, 09 Dec 2021 10:47:56 GMT):
Yep that's right, also building vdr-tools on osx or linux doesn't work out of the box because of the mentioned dependencies (need to have some cosmos/tendermind libraries) I submitted this PR to make these required only for cheqd featured builds https://gitlab.com/evernym/verity/vdr-tools/-/merge_requests/152

sairanjit (Thu, 30 Dec 2021 18:25:22 GMT):
Has joined the channel.

kalyankonda (Thu, 10 Feb 2022 07:16:20 GMT):
Has joined the channel.

kukgini (Fri, 18 Feb 2022 02:07:17 GMT):
Hi. here. long time no see. have you any plan this channel into move Discoard?

kukgini (Fri, 18 Feb 2022 02:07:17 GMT):
Hi. here. long time no see. have you any plan this channel to move to Discoard?

mateokurti (Sat, 19 Feb 2022 23:06:42 GMT):
I was wondering the same :)

mateokurti (Mon, 21 Feb 2022 16:27:21 GMT):
``` [2022-02-21 16:15:42.731] [index] [error] [expressRequestId=undefined]: Unhandled error. Application will be terminated. AssertionError [ERR_ASSERTION]: S3 bucket name to download certificates from not specified at fetchCertsFromS3 (/home/node/vcxagency-node/src/scripts/download-certs.js:38:3) at run (/home/node/vcxagency-node/src/index.js:57:11) at Object. (/home/node/vcxagency-node/src/index.js:88:1) at Module._compile (internal/modules/cjs/loader.js:999:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module._load (internal/modules/cjs/loader.js:708:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) at internal/main/run_main_module.js:17:47 npm ERR! code ELIFECYCLE npm ERR! errno 255 npm ERR! vcxagency-node@0.3.1 serve: `NODE_ENV=production node src/index.js` npm ERR! Exit status 255 npm ERR! npm ERR! Failed at the vcxagency-node@0.3.1 serve script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. ```

mateokurti (Mon, 21 Feb 2022 16:27:30 GMT):
Hi! Does anyone have any idea?

rjones (Wed, 23 Mar 2022 17:35:00 GMT):

rjones (Wed, 23 Mar 2022 17:35:00 GMT):

rjones (Wed, 23 Mar 2022 17:35:00 GMT):