openwallet-foundation / acapy

ACA-Py is a foundation for building decentralized identity applications and services running in non-mobile environments.
https://aca-py.org
Apache License 2.0
419 stars 512 forks source link

Presentation Request is not verified but no errors #155

Closed SmithSamuelM closed 5 years ago

SmithSamuelM commented 5 years ago

I am trying to work through the open api demo here: https://github.com/hyperledger/aries-cloudagent-python/blob/master/demo/AriesOpenAPIDemo.md

But using the act-py CLI instead. I run into difficulty when requesting presentation of an issued credential. It does not perform as described in the demo documentation. I cannot see anything that I am doing wrong so I am stuck. Some help would be appreciated.

Basically everything works until I have Faber request a presentation the issued credential from Alice. Despite no errors with a successful send the GET presentation_exchange/{id} state never changes its always request_sent not verified. When looking at the Alice side of the exchange is shows request_received but nothing else happens.

Note (see below) that Alice has both --auto-respond-presentation-request \ --auto-verify-presentation \

So I can't figure out why Alice is not responding?

P.S. In working through the swagger api the id on both sides of a connection or exchange are different for each side. While its possible to figure from the order of events what responses belong to a given connection/exchange it seems like it would be much easier if the API included the ids from the other side. Indeed its somewhat tedious if there are multiple exchanges etc. I fear that this manual matchup would be error prone and could get really complicated and problematic if there were more than one agent talking at the same time. I assume (maybe this is a big assumption) that under the hood each agent is keeping track of the ids from the other side of any connection or exchange but only exposing in the API their side. It would be helpful to understand why only one side shows up in the API. After the incepting event both sides should have both sets of ids or am I missing something fundamental here?

Full Details

---------
Setup Operation
---------

------
1- Run the local indy ledger (see instructions below) using docker.
------

$ cd /Data/Code/public/hyperledger/indy/indy-sdk/
$ docker run -itd -p 9701-9708:9701-9708 indy_pool
$ docker container ls
 ...  xenodochial_hermann
$ docker container stop xenodochial_hermann

-----------
2- Run the von-network web server ledger browser
---------

$ cd /Data/Code/public/hyperledger/aries/von-network/
$ GENESIS_FILE=/Data/Code/public/hyperledger/aries/cloudagentpy/demo/local-genesis.txt PORT=9000 REGISTER_NEW_DIDS=true python3 -m server.server

^-C ^-C to stop
If rebuild indy pool pull latest von-network

Web browser to 
http://localhost:9000

------------
3- Use von-network browser to create public did for agents 
-------------

 Faber

Wallet Seed:  0123456789ABCDEF0123456789ABCDEF
Seed: 0123456789ABCDEF0123456789ABCDEF
DID: 3avoBCqDMFHFaKUHug9s8W
Verkey: 2QiWG18JjfjUFQMk8xdmhyphRzmbveaYbGM3R8iPbiBx

Note DID is same as ledger NYM

Ledger
#13
Message Wrapper
Transaction ID: 3avoBCqDMFHFaKUHug9s8W:1:b6bf7bc8d96f3ea9d132c83b3da8e7760e420138485657372db4d6a981d3fd9e
Transaction time: 8/26/2019, 2:33:32 PM (1566851612)
Signed by: 3avoBCqDMFHFaKUHug9s8W
Root hash: 7QGypVJth4YWsSqvvyQwCPceFqtYiu3Z5m9Zndw7tS2v
Audit path: Buty8XtWwoUviCeqZLe9yNkuAvfG6Usd7cpExB7zn1b4, DNHM372JZJoGcxdHdmsj3QSSiomyeZux6ssJXxAJqyvd
Metadata
From nym: 3avoBCqDMFHFaKUHug9s8W
Request ID: 1566851612886907000
Digest: c0caa1f3590632d25fb4557579cb345d1f07c3799adff2df6e286c60fd4b5d80
Transaction
Type: ATTRIB
Nym: 3avoBCqDMFHFaKUHug9s8W
Attribute data: {"endpoint":{"endpoint":"http://localhost:8020"}}
Raw Data 
{
  "auditPath": [
    "Buty8XtWwoUviCeqZLe9yNkuAvfG6Usd7cpExB7zn1b4",
    "DNHM372JZJoGcxdHdmsj3QSSiomyeZux6ssJXxAJqyvd"
  ],
  "reqSignature": {
    "type": "ED25519",
    "values": [
      {
        "from": "3avoBCqDMFHFaKUHug9s8W",
        "value": "3c1hgAxEbZnyiXQ86uByUwbFyfX1Hg26LRt8f1P65pQC79whdWbFcS2Cuda3B9iPRBULsqERk6o6qLY4ifUyVeYB"
      }
    ]
  },
  "rootHash": "7QGypVJth4YWsSqvvyQwCPceFqtYiu3Z5m9Zndw7tS2v",
  "txn": {
    "data": {
      "dest": "3avoBCqDMFHFaKUHug9s8W",
      "raw": "{\"endpoint\":{\"endpoint\":\"http://localhost:8020\"}}"
    },
    "metadata": {
      "digest": "c0caa1f3590632d25fb4557579cb345d1f07c3799adff2df6e286c60fd4b5d80",
      "from": "3avoBCqDMFHFaKUHug9s8W",
      "payloadDigest": "c6b3ead524d41c835ca27c9ef7e5236a5e854c5afcef517f698896e59d2d20ae",
      "reqId": 1566851612886907000
    },
    "protocolVersion": 2,
    "type": "100"
  },
  "txnMetadata": {
    "seqNo": 13,
    "txnId": "3avoBCqDMFHFaKUHug9s8W:1:b6bf7bc8d96f3ea9d132c83b3da8e7760e420138485657372db4d6a981d3fd9e",
    "txnTime": 1566851612
  },
  "ver": "1"
}

Alice

Wallet Seed:  ABCDEF0123456789ABCDEF0123456789
Seed: ABCDEF0123456789ABCDEF0123456789
DID: KfoDwEpcJoNCdb6Akeeb9w
Verkey: BBAM5UQdhfFvSdihv4SbEcV3zAyLZ2dEs3WwBnh2cHw2

Note DID is same as ledger NYM

Ledger
#14
Message Wrapper
Transaction ID: KfoDwEpcJoNCdb6Akeeb9w:1:b6bf7bc8d96f3ea9d132c83b3da8e7760e420138485657372db4d6a981d3fd9e
Transaction time: 8/26/2019, 2:33:52 PM (1566851632)
Signed by: KfoDwEpcJoNCdb6Akeeb9w
Root hash: 8aqevg9vrWEFZK5QGhwAydZ7sR4MMqRQj2kq46PdXLwn
Audit path: AUBMjrDhmz9uCKrwK2tUz5eW62FZoZNwh1RUDnFJz2VZ, Buty8XtWwoUviCeqZLe9yNkuAvfG6Usd7cpExB7zn1b4, DNHM372JZJoGcxdHdmsj3QSSiomyeZux6ssJXxAJqyvd
Metadata
From nym: KfoDwEpcJoNCdb6Akeeb9w
Request ID: 1566851632037517000
Digest: 362abd5da0f9b25868f9c1374f44dfa0c3b872e6ce94b5221b88a45796f903af
Transaction
Type: ATTRIB
Nym: KfoDwEpcJoNCdb6Akeeb9w
Attribute data: {"endpoint":{"endpoint":"http://localhost:8030"}}
Raw Data 
{
  "auditPath": [
    "AUBMjrDhmz9uCKrwK2tUz5eW62FZoZNwh1RUDnFJz2VZ",
    "Buty8XtWwoUviCeqZLe9yNkuAvfG6Usd7cpExB7zn1b4",
    "DNHM372JZJoGcxdHdmsj3QSSiomyeZux6ssJXxAJqyvd"
  ],
  "reqSignature": {
    "type": "ED25519",
    "values": [
      {
        "from": "KfoDwEpcJoNCdb6Akeeb9w",
        "value": "3CGGkZfN4pMpp8MY9JxmUjejWpYK4AshnV9NJZGw1f5Z7sXwETATpbQWsgv3sxz8Qe1e7rDLJXs22eJK2JGW2wwV"
      }
    ]
  },
  "rootHash": "8aqevg9vrWEFZK5QGhwAydZ7sR4MMqRQj2kq46PdXLwn",
  "txn": {
    "data": {
      "dest": "KfoDwEpcJoNCdb6Akeeb9w",
      "raw": "{\"endpoint\":{\"endpoint\":\"http://localhost:8030\"}}"
    },
    "metadata": {
      "digest": "362abd5da0f9b25868f9c1374f44dfa0c3b872e6ce94b5221b88a45796f903af",
      "from": "KfoDwEpcJoNCdb6Akeeb9w",
      "payloadDigest": "441d40fe946056a1f65067712fdf444c568dd84941cbc2f5d742547f492adeb2",
      "reqId": 1566851632037517000
    },
    "protocolVersion": 2,
    "type": "100"
  },
  "txnMetadata": {
    "seqNo": 14,
    "txnId": "KfoDwEpcJoNCdb6Akeeb9w:1:b6bf7bc8d96f3ea9d132c83b3da8e7760e420138485657372db4d6a981d3fd9e",
    "txnTime": 1566851632
  },
  "ver": "1"
}

---------
4- Run web hook server leopy
---------
/Data/Code/public/hyperledger/aries/leopy/src/leopy/leopyd.py

$ cd /Data/Code/public/hyperledger/aries/leopy/src/
$  python3 -m leopy.leopyd -v 1

------------
5- Run aca-py CLI
-------------

In another terminal run the aca-py cli .
Agent's "Admin interface" provides the swagger API.

a) Run Agent
b) Create Invitation using swagger
    POST /connections/create-invitation

Faber with webhook controller

$ aca-py start \
--inbound-transport http 0.0.0.0 8020 \
--outbound-transport http \
--log-level debug \
--endpoint http://localhost:8020 \
--label FaberAgent  \
--seed 0123456789ABCDEF0123456789ABCDEF \
--ledger-pool-name localindypool \
--admin 0.0.0.0 8021 \
--admin-insecure-mode \
--public-invites \
--auto-accept-invites \
--auto-accept-requests \
--auto-ping-connection \
--auto-respond-messages \
--auto-respond-credential-offer \
--auto-respond-presentation-request \
--auto-verify-presentation \
--wallet-key super_agent-1 \
--wallet-name super_agent_1 \
--wallet-type indy \
--genesis-url http://localhost:9000/genesis \
--webhook-url http://localhost:8080 \

Alice

$ aca-py start \
--inbound-transport http 0.0.0.0 8030 \
--outbound-transport http \
--log-level debug \
--endpoint http://localhost:8030 \
--label AliceAgent \
--seed ABCDEF0123456789ABCDEF0123456789 \
--ledger-pool-name localindypool \
--admin 0.0.0.0 8031 \
--admin-insecure-mode \
--public-invites \
--auto-accept-invites \
--auto-accept-requests \
--auto-ping-connection \
--auto-respond-messages \
--auto-respond-credential-offer \
--auto-respond-presentation-request \
--auto-verify-presentation \
--wallet-key super_agent-2 \
--wallet-name super_agent_2 \
--wallet-type indy \
--genesis-url http://localhost:9000/genesis \

------------
Open API Demo but with aca-py 0.3.1
------------

https://github.com/hyperledger/aries-cloudagent-python/blob/master/demo/AriesOpenAPIDemo.md

With Webhook to leopy server
On Faber swagger :8021

/connections/create-invitation
$ curl -X POST "http://127.0.0.1:8021/connections/create-invitation" -H "accept: application/json"

Using swagger to create invitation on faber's admin interface :8020
POST /connections/create-invitation

Copy the entire block of the invitation object, from the curly brackets {}, 
excluding the trailing comma.

response

{
    "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/invitation",
    "@id": "9d6b48ad-133b-4705-b765-5e501a393a74",
    "label": "FaberAgent",
    "serviceEndpoint": "http://localhost:8020",
    "recipientKeys": [
      "5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc"
    ]
  }

Event
Sink: /topic/connections/ POST
JSON:
{
  "topic": "connections",
  "data": {
    "routing_state": "none",
    "state": "invitation",
    "invitation_mode": "once",
    "invitation_key": "5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc",
    "updated_at": "2019-08-26 20:36:19.350923Z",
    "created_at": "2019-08-26 20:36:19.350923Z",
    "initiator": "self",
    "accept": "auto",
    "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7"
  }
}

Go to Alice's swagger and receive the invitation
copy invitation response above

POST /connections/receive-invitation

Response
{
  "created_at": "2019-08-26 20:40:09.616234Z",
  "invitation_key": "5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc",
  "routing_state": "none",
  "state": "request",
  "updated_at": "2019-08-26 20:40:09.635759Z",
  "invitation_mode": "once",
  "request_id": "1f55bf98-f3fc-4613-82e3-6cf159598d24",
  "my_did": "JK7aKyr22cQ4B1tpeiT1ti",
  "connection_id": "4193344d-c71b-4628-b582-2531feb1770e",
  "their_label": "FaberAgent",
  "accept": "auto",
  "initiator": "external"
}

Faber Webhook
Sink: /topic/connections/ POST
JSON:
{
  "topic": "connections",
  "data": {
    "routing_state": "none",
    "state": "request",
    "invitation_mode": "once",
    "invitation_key": "5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc",
    "updated_at": "2019-08-26 20:40:09.731731Z",
    "created_at": "2019-08-26 20:36:19.350923Z",
    "their_did": "JK7aKyr22cQ4B1tpeiT1ti",
    "initiator": "self",
    "accept": "auto",
    "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
    "their_label": "AliceAgent"
  }
}
Sink: /topic/connections/ POST
JSON:
{
  "topic": "connections",
  "data": {
    "routing_state": "none",
    "state": "response",
    "invitation_mode": "once",
    "invitation_key": "5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc",
    "updated_at": "2019-08-26 20:40:09.768822Z",
    "created_at": "2019-08-26 20:36:19.350923Z",
    "their_did": "JK7aKyr22cQ4B1tpeiT1ti",
    "initiator": "self",
    "my_did": "5jpjNPYVE1LpH6JRQgx5Qd",
    "accept": "auto",
    "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
    "their_label": "AliceAgent"
  }
}
Sink: /topic/connections/ POST
JSON:
{
  "topic": "connections",
  "data": {
    "routing_state": "none",
    "state": "active",
    "invitation_mode": "once",
    "invitation_key": "5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc",
    "updated_at": "2019-08-26 20:40:09.901121Z",
    "created_at": "2019-08-26 20:36:19.350923Z",
    "their_did": "JK7aKyr22cQ4B1tpeiT1ti",
    "initiator": "self",
    "my_did": "5jpjNPYVE1LpH6JRQgx5Qd",
    "accept": "auto",
    "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
    "their_label": "AliceAgent"
  }
}

----------------
Connection Success
--------------

Faber: "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7"
Alice: "connection_id": "4193344d-c71b-4628-b582-2531feb1770e"

Looks like the wallet preserved the connection from last time since two active
connections

--------
Create Schema
------------

Swagger Faber
POST /schemas  Sends a schema to the ledger

{
  "schema_name": "string",
  "attributes": [
    "string"
  ],
  "schema_version": "string"
}

{
  "schema_name": "fabername",
  "schema_version": "0.1.0",
  "attributes": 
  [
    "name"
  ]
}

Response
{
  "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0"
}

schema_id is same as ledger transaction id

No Webhook events

Ledger

#15
Message Wrapper
Transaction ID: KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0
Transaction time: 8/26/2019, 2:50:33 PM (1566852633)
Signed by: KfoDwEpcJoNCdb6Akeeb9w
Root hash: 8wYSjDWcGFL7WmUzxrogDKGmNwhjYN1bMT9Fgz9PGRaK
Audit path: 3SUQ7PPz1QJv1bDVTPcth3MijLRWuTDEdSf1Af7mPU2e, Buty8XtWwoUviCeqZLe9yNkuAvfG6Usd7cpExB7zn1b4, DNHM372JZJoGcxdHdmsj3QSSiomyeZux6ssJXxAJqyvd
Metadata
From nym: KfoDwEpcJoNCdb6Akeeb9w
Request ID: 1566852633000474000
Digest: aed9ad709ff4748fa944b9f706b6ffb94fda2425b9b65b8486a1c31a7facde9f
Transaction
Type: SCHEMA
Schema name: fabername
Schema version: 0.1.0
Schema attributes:
name
Raw Data 
{
  "auditPath": [
    "3SUQ7PPz1QJv1bDVTPcth3MijLRWuTDEdSf1Af7mPU2e",
    "Buty8XtWwoUviCeqZLe9yNkuAvfG6Usd7cpExB7zn1b4",
    "DNHM372JZJoGcxdHdmsj3QSSiomyeZux6ssJXxAJqyvd"
  ],
  "reqSignature": {
    "type": "ED25519",
    "values": [
      {
        "from": "KfoDwEpcJoNCdb6Akeeb9w",
        "value": "5bndEAFVWmszr1NH1xTgW2zyScyU8SvEFyv5diAwCQZu1i9buBRNAL9vYvoqByrPdJV1Bm8EGptmnV2btik2qSFf"
      }
    ]
  },
  "rootHash": "8wYSjDWcGFL7WmUzxrogDKGmNwhjYN1bMT9Fgz9PGRaK",
  "txn": {
    "data": {
      "data": {
        "attr_names": [
          "name"
        ],
        "name": "fabername",
        "version": "0.1.0"
      }
    },
    "metadata": {
      "digest": "aed9ad709ff4748fa944b9f706b6ffb94fda2425b9b65b8486a1c31a7facde9f",
      "from": "KfoDwEpcJoNCdb6Akeeb9w",
      "payloadDigest": "ba113c455ccb2968244c55be6268007e4588a59f016a93b2c6d3c16a037c918b",
      "reqId": 1566852633000474000
    },
    "protocolVersion": 2,
    "type": "101"
  },
  "txnMetadata": {
    "seqNo": 15,
    "txnId": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0",
    "txnTime": 1566852633
  },
  "ver": "1"
}

---------
Register Credential Definition
----------

Faber
POST /credential-definitions   Sends a credential definition to the ledger

{
  "schema_id": "string"
}

Post Cred Def
{
    "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0"
}

Response 

{
  "credential_definition_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
}

Cred Def ID and ledger transaction id are the same

No webhook events

Ledger

#16
Message Wrapper
Transaction ID: 3avoBCqDMFHFaKUHug9s8W:3:CL:15:default
Transaction time: 8/26/2019, 2:55:10 PM (1566852910)
Signed by: 3avoBCqDMFHFaKUHug9s8W
Root hash: EsgWdgYfyvoKBhrTMMMwYSR9TkmyLzKe8mBr4sTYUG67
Audit path: 7Tuy1FXSZVnZzvoAXQtQt2zTdV7hW1SQ8SUT9QtttmmN, 3SUQ7PPz1QJv1bDVTPcth3MijLRWuTDEdSf1Af7mPU2e, Buty8XtWwoUviCeqZLe9yNkuAvfG6Usd7cpExB7zn1b4, DNHM372JZJoGcxdHdmsj3QSSiomyeZux6ssJXxAJqyvd
Metadata
From nym: 3avoBCqDMFHFaKUHug9s8W
Request ID: 1566852910163825000
Digest: 17bca1c453ba561ad32e4990c2cbf56d05a291513a96de4a09fbac11d6c9fe5f
Transaction
Type: CRED_DEF
Reference: 15
Signature type: CL
Tag: default
Attributes:
master_secret
name
Raw Data 
{
  "auditPath": [
    "7Tuy1FXSZVnZzvoAXQtQt2zTdV7hW1SQ8SUT9QtttmmN",
    "3SUQ7PPz1QJv1bDVTPcth3MijLRWuTDEdSf1Af7mPU2e",
    "Buty8XtWwoUviCeqZLe9yNkuAvfG6Usd7cpExB7zn1b4",
    "DNHM372JZJoGcxdHdmsj3QSSiomyeZux6ssJXxAJqyvd"
  ],
  "reqSignature": {
    "type": "ED25519",
    "values": [
      {
        "from": "3avoBCqDMFHFaKUHug9s8W",
        "value": "4hyG61JwDTgEg9Mamsw14vr84PNxZ4TnV8bHoHoNK6bwPUfxBRph483PFn4yARtJ6R5VZpsaNNHq2DBxDZFMHDba"
      }
    ]
  },
  "rootHash": "EsgWdgYfyvoKBhrTMMMwYSR9TkmyLzKe8mBr4sTYUG67",
  "txn": {
    "data": {
      "data": {
        "primary": {
          "n": "103683558263804371480333775906833789599774205874746897841611087238331498759113352612536355097153641239378647440407873043260086374173939286704080345842342837216564897516504314731812724638100773252467608434907565697577238628224270376738086779947074754918226875104605897836077558172289573864633513056841766718729131661489313691494149573976602836817523503100608695990538550062986064692653869382789993336370977831751396768187350516652120969594087401497194367131666542050832541116852258434184763764304099166962851279868982484744049261254498874675122596213192000798089938983135077269489437526318752653370398687586653912317917",
          "r": {
            "master_secret": "20058644457480476909366195109052187967752877766023239786395198772049825187367612889649236262836350888985922536840066640232947613646700568229527984698030765893517701755988672843866924639742439298873589315986028103324752800148255556505812828867781440407716109759231788990864770065678835907879481158713695835196651909922135325117483999611518808596291632537027890650492220403567094100555601954589448121101589857805484492124718543792466275892143030785037918577454963135008900012498025730518943569745647185080797756325191499403763183864097544871362639995598696079448909051763366761909483287077690143653267945204951687403319",
            "name": "101541587487317699358006173089239918980813782251626906628971899046055937192898528317509322408823804160947097575414757431717283511801024270590677334062282683062491420528786176327304236656563521408017964307368195483493408508675375160473395345986029033790609945750782892090349934423675873247767887457958219600786575993546247578253166881524236727768538715413501200200095488446172330302642971817252831684400198702675340151186780041071381935496568094561665472254004805214613449662370347987405778348334545345216659728732893579386525033094405974420075318849203285287586820611890200472261025173812106926037498712717562839713812"
          },
          "rctxt": "46477230569176432560673209159444545848466968272377757926858221693494060475883085797770431985854703221324728472332701492032840529153372050478107185408538745236272077810412971640416565591789138527252383661709091126674562941920582970807347312429725566815133352945015811910433936349427565996556843346538431777266633440716567844371714359513259717152732129549963226471482891895759833408465443475060009682962773345347952940784243581627808336847810328122400843658944711317908411322410412503719470793189845979107315381711112820007096686134153529668034660814896745482582485488486426178986505775988249220244965380091251846555143",
          "s": "20828339001945202990856308094662850174567836462341384867063450998097523651810734709920420296655205720666433575163960961766866168660350004835519661005557367774366580453016722320368919917104578221457380945762527909851964051585936439208154733686043400036283877435517688458471186108272399726969119082716027299505969816783444673916047045566960485310374693263159042303254885092819694299056727658779616693245504829076092127412143239308542043855949188256197757851469484809120674077771594267960550839363468328862608495776028474753814386025287367524061807601190797374318549228497387681280629369087575698831514905349597739444882",
          "z": "98966767137079696580456385093658840055890096797382371195035198164046791873203258984520327754689831544805343622723768758052933255367633665755062647767059697218386913137905172489539114214340735085436988264125082784416899809455389953648270627343502164714352695628778868430973351133172620075445445160770977909062523124329695625464676063020552681727199695921967703401566178013596211868105597661740630396215315618466654378793095113056207336140627194449110186617747077926385382562653134007461011154765506767620478292053822548974245217830550091009714983853334838008922506255144339086405932330281897451487901723101142182549394"
        }
      },
      "ref": 15,
      "signature_type": "CL",
      "tag": "default"
    },
    "metadata": {
      "digest": "17bca1c453ba561ad32e4990c2cbf56d05a291513a96de4a09fbac11d6c9fe5f",
      "from": "3avoBCqDMFHFaKUHug9s8W",
      "payloadDigest": "6550c9d3b95322a24ac86d0fc269c991f7c61cc1f0bb1226117003fe27371660",
      "reqId": 1566852910163825000
    },
    "protocolVersion": 2,
    "type": "102"
  },
  "txnMetadata": {
    "seqNo": 16,
    "txnId": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
    "txnTime": 1566852910
  },
  "ver": "1"
}

Notes

OK, the one time setup work for issuing a credential complete. 
We can now issue 1 or a million credentials without having to do those steps again. 
Astute readers might note that we did not setup a revocation registry, 
so we cannot revoke the credentials we issue with that credential definition. 
You can’t have everything in an easy demo (and we’re still working on enabling that).

-------------
Issue Credential
------------
Faber

POST /credential_exchange/send    Sends a credential and automates the entire flow

{
  "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
  "credential_definition_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
  "credential_values": {"name": "Alice Jones"}
}

Response
{
  "created_at": "2019-08-26 21:35:58.557709Z",
  "credential_exchange_id": "81eccbed-6803-451c-951d-2d135dfa3741",
  "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0",
  "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
  "state": "offer_sent",
  "updated_at": "2019-08-26 21:35:58.557709Z",
  "auto_issue": true,
  "credential_offer": {
    "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0",
    "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
    "key_correctness_proof": {
      "c": "105835522100817049279115890207661235959813861417542347921955016516499698460408",
      "xz_cap": "1638410429849068989186889886329186415503237595966138239326684715522306176939330430422962672635868280243364686157095845946855029759003202229849823369549672435347542347310116363153191778701074666549590622528565922643845459639346822272507202221265812273915276087838802367593814067319456174951725981285465872668804098254211976860311382669285349578818157199002875666800666446356669413162433033247577238934208937963747304444128697891906485633917779181097180891193813187210430415208454609002515583887914364332380562008017400911109748458911158043146375046496669294969933051875073198539080944750906007049541876256606442615972630798553606560575292682889278021859167231774358807663808872220996947800248293",
      "xr_cap": [
        [
          "name",
          "2212790099987316622238013756877890508925740303728480902368255518679851241809667621080863637673008984010614955985128137614148029684347689909707459907916556309387654059359756426736719874522005004401570478975779268727068856001949706361437011734013562874452334026853232737603867894422839993244385280894108080889803897004184189576923382136916690773564610387645194831063163142042547339599531122132647978380751598647968385685317726686690041015652465761427098912576022207624349768618863904006182443979006705174714444653030564823500671060909130107714013704425173107572488111362933172177878848614750711559544670198377925828197026625719050934813362114960044632184060631909610360647839650091257314984066087"
        ],
        [
          "master_secret",
          "440045062106029681289316032592875758739070795133528029791351804720090360444954389456368947483772178089013920510857183982992020677726662859633322071465468507383499119294357282369486426242251668786234577534494997180652712914791113032475116902356157270058421024986428917457678911888755160380647906835082778219542124218396960761707604194634835759159383200675778077130054953252195233963123672931101402388749963521771132602208729355867271159447477045600628092315007652059906062486276195651768995377953917119405617168714035214672845120759894295600738759112884548057562897308431153679656007198628335401693943981265208995512239809273639959907992194511192024716589689281515003980601784440092947703579012"
        ]
      ]
    },
    "nonce": "900640897750233209326279"
  },
  "credential_values": {
    "name": "Alice Jones"
  },
  "initiator": "self",
  "credential_definition_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
}

Webhook Events

Sink: /topic/credentials/ POST
JSON:
{
  "topic": "credentials",
  "data": {
    "created_at": "2019-08-26 21:35:58.557709Z",
    "credential_exchange_id": "81eccbed-6803-451c-951d-2d135dfa3741",
    "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0",
    "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
    "state": "offer_sent",
    "updated_at": "2019-08-26 21:35:58.557709Z",
    "auto_issue": true,
    "credential_offer": {
      "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0",
      "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
      "key_correctness_proof": {
        "c": "105835522100817049279115890207661235959813861417542347921955016516499698460408",
        "xz_cap": "1638410429849068989186889886329186415503237595966138239326684715522306176939330430422962672635868280243364686157095845946855029759003202229849823369549672435347542347310116363153191778701074666549590622528565922643845459639346822272507202221265812273915276087838802367593814067319456174951725981285465872668804098254211976860311382669285349578818157199002875666800666446356669413162433033247577238934208937963747304444128697891906485633917779181097180891193813187210430415208454609002515583887914364332380562008017400911109748458911158043146375046496669294969933051875073198539080944750906007049541876256606442615972630798553606560575292682889278021859167231774358807663808872220996947800248293",
        "xr_cap": [
          [
            "name",
            "2212790099987316622238013756877890508925740303728480902368255518679851241809667621080863637673008984010614955985128137614148029684347689909707459907916556309387654059359756426736719874522005004401570478975779268727068856001949706361437011734013562874452334026853232737603867894422839993244385280894108080889803897004184189576923382136916690773564610387645194831063163142042547339599531122132647978380751598647968385685317726686690041015652465761427098912576022207624349768618863904006182443979006705174714444653030564823500671060909130107714013704425173107572488111362933172177878848614750711559544670198377925828197026625719050934813362114960044632184060631909610360647839650091257314984066087"
          ],
          [
            "master_secret",
            "440045062106029681289316032592875758739070795133528029791351804720090360444954389456368947483772178089013920510857183982992020677726662859633322071465468507383499119294357282369486426242251668786234577534494997180652712914791113032475116902356157270058421024986428917457678911888755160380647906835082778219542124218396960761707604194634835759159383200675778077130054953252195233963123672931101402388749963521771132602208729355867271159447477045600628092315007652059906062486276195651768995377953917119405617168714035214672845120759894295600738759112884548057562897308431153679656007198628335401693943981265208995512239809273639959907992194511192024716589689281515003980601784440092947703579012"
          ]
        ]
      },
      "nonce": "900640897750233209326279"
    },
    "credential_values": {
      "name": "Alice Jones"
    },
    "initiator": "self",
    "credential_definition_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
  }
}

Sink: /topic/credentials/ POST
JSON:
{
  "topic": "credentials",
  "data": {
    "thread_id": "44be94e4-32a4-4715-a6bc-cf50b83962b8",
    "created_at": "2019-08-26 21:35:58.557709Z",
    "credential_exchange_id": "81eccbed-6803-451c-951d-2d135dfa3741",
    "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0",
    "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
    "state": "request_received",
    "credential_request": {
      "prover_did": "JK7aKyr22cQ4B1tpeiT1ti",
      "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
      "blinded_ms": {
        "u": "87977274422539756428398982152728763967893378490006466225005855032942648512938822253250702184631882523244693106670115136142657749341726739772658141274590035020488132310818048108353881020878546516756570331272390215787799759624429815215694077562257816280569482195263947843471288201481133127530084281220942280813295820912079690821560028470845046767585870324398132613815123815530474164869996711042845753699803357910318111923905797852158413258982451476240768118366183265632401244115244885765335477116828891421996558140867590856259951996573473784531856255525756090581992718536599573735840481867113853395345170865228762324835",
        "ur": null,
        "hidden_attributes": [
          "master_secret"
        ],
        "committed_attributes": {}
      },
      "blinded_ms_correctness_proof": {
        "c": "49435512587065793629029630268067773083513338057308769910118748103464837582333",
        "v_dash_cap": "741822394987849785886893311754754149432987755587430658567742785646057402484381771541051410041424940929004734674471037096919494294178501330916858867416673532521650255259131362392803027344216661344786412967758110132285080019467198015470008749324051576142594938303672969778983852301746176845443041531660608634752896345707503415733368334890216862364395352030316895934068784729822275540296807759288460522394825101736509515172000112562569083495718641609115894113006187619595183414276880186182120863919263320710213731219210964271556970553633458496842183281962643828400331734815618512332206345080615112113133994447453463033556814884711033928346854818082016875288233317250277002714876640561543013559917353502168361166117072868",
        "m_caps": {
          "master_secret": "31929071113725263560251983491985858095828236643251796661049974490467719473103363424624040611064816374369877539864245835049065504041635407162549607101593500916708499389926485993570"
        },
        "r_caps": {}
      },
      "nonce": "492380915769852717212514"
    },
    "updated_at": "2019-08-26 21:35:59.242522Z",
    "auto_issue": true,
    "credential_offer": {
      "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0",
      "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
      "key_correctness_proof": {
        "c": "105835522100817049279115890207661235959813861417542347921955016516499698460408",
        "xz_cap": "1638410429849068989186889886329186415503237595966138239326684715522306176939330430422962672635868280243364686157095845946855029759003202229849823369549672435347542347310116363153191778701074666549590622528565922643845459639346822272507202221265812273915276087838802367593814067319456174951725981285465872668804098254211976860311382669285349578818157199002875666800666446356669413162433033247577238934208937963747304444128697891906485633917779181097180891193813187210430415208454609002515583887914364332380562008017400911109748458911158043146375046496669294969933051875073198539080944750906007049541876256606442615972630798553606560575292682889278021859167231774358807663808872220996947800248293",
        "xr_cap": [
          [
            "name",
            "2212790099987316622238013756877890508925740303728480902368255518679851241809667621080863637673008984010614955985128137614148029684347689909707459907916556309387654059359756426736719874522005004401570478975779268727068856001949706361437011734013562874452334026853232737603867894422839993244385280894108080889803897004184189576923382136916690773564610387645194831063163142042547339599531122132647978380751598647968385685317726686690041015652465761427098912576022207624349768618863904006182443979006705174714444653030564823500671060909130107714013704425173107572488111362933172177878848614750711559544670198377925828197026625719050934813362114960044632184060631909610360647839650091257314984066087"
          ],
          [
            "master_secret",
            "440045062106029681289316032592875758739070795133528029791351804720090360444954389456368947483772178089013920510857183982992020677726662859633322071465468507383499119294357282369486426242251668786234577534494997180652712914791113032475116902356157270058421024986428917457678911888755160380647906835082778219542124218396960761707604194634835759159383200675778077130054953252195233963123672931101402388749963521771132602208729355867271159447477045600628092315007652059906062486276195651768995377953917119405617168714035214672845120759894295600738759112884548057562897308431153679656007198628335401693943981265208995512239809273639959907992194511192024716589689281515003980601784440092947703579012"
          ]
        ]
      },
      "nonce": "900640897750233209326279"
    },
    "credential_values": {
      "name": "Alice Jones"
    },
    "initiator": "self",
    "credential_definition_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
  }
}

Sink: /topic/credentials/ POST
JSON:
{
  "topic": "credentials",
  "data": {
    "thread_id": "44be94e4-32a4-4715-a6bc-cf50b83962b8",
    "created_at": "2019-08-26 21:35:58.557709Z",
    "credential_exchange_id": "81eccbed-6803-451c-951d-2d135dfa3741",
    "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0",
    "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
    "state": "issued",
    "credential_request": {
      "prover_did": "JK7aKyr22cQ4B1tpeiT1ti",
      "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
      "blinded_ms": {
        "u": "87977274422539756428398982152728763967893378490006466225005855032942648512938822253250702184631882523244693106670115136142657749341726739772658141274590035020488132310818048108353881020878546516756570331272390215787799759624429815215694077562257816280569482195263947843471288201481133127530084281220942280813295820912079690821560028470845046767585870324398132613815123815530474164869996711042845753699803357910318111923905797852158413258982451476240768118366183265632401244115244885765335477116828891421996558140867590856259951996573473784531856255525756090581992718536599573735840481867113853395345170865228762324835",
        "ur": null,
        "hidden_attributes": [
          "master_secret"
        ],
        "committed_attributes": {}
      },
      "blinded_ms_correctness_proof": {
        "c": "49435512587065793629029630268067773083513338057308769910118748103464837582333",
        "v_dash_cap": "741822394987849785886893311754754149432987755587430658567742785646057402484381771541051410041424940929004734674471037096919494294178501330916858867416673532521650255259131362392803027344216661344786412967758110132285080019467198015470008749324051576142594938303672969778983852301746176845443041531660608634752896345707503415733368334890216862364395352030316895934068784729822275540296807759288460522394825101736509515172000112562569083495718641609115894113006187619595183414276880186182120863919263320710213731219210964271556970553633458496842183281962643828400331734815618512332206345080615112113133994447453463033556814884711033928346854818082016875288233317250277002714876640561543013559917353502168361166117072868",
        "m_caps": {
          "master_secret": "31929071113725263560251983491985858095828236643251796661049974490467719473103363424624040611064816374369877539864245835049065504041635407162549607101593500916708499389926485993570"
        },
        "r_caps": {}
      },
      "nonce": "492380915769852717212514"
    },
    "updated_at": "2019-08-26 21:35:59.775438Z",
    "auto_issue": true,
    "credential": {
      "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0",
      "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
      "rev_reg_id": null,
      "values": {
        "name": {
          "raw": "Alice Jones",
          "encoded": "72896232743708443677449555551687504476536417389324439453514323796296385992918"
        }
      },
      "signature": {
        "p_credential": {
          "m_2": "6180689762572968608932465894423098355754959241756463768475942046517539739855",
          "a": "86060852769532842380497801598095654686003325041750075923342476995838075615469598973164619536740139764689698352872397937911427425319328434268065281024807732843140910619689452678149546220785492103586388521387055615735089437305499477250667440918073813695021533895226046763533810528405195638361326280664935729386012344421678313616618764596696672764327620393070318988223388544520533047611216135550884674558908552071245563842572871874340046403243669715187597296674574382111287875611747526809738043673821026832155359643563594948612932648127212096948020715660958291146456718709555679244380685880266626174697508978718707861987",
          "e": "259344723055062059907025491480697571938277889515152306249728583105665800713306759149981690559193987143012367913206299323899696942213235956742929855506033458324635439651833554242037",
          "v": "6528411053893512829591104122840017435819198426081713889047960501885949013036667325861182567925708162880267254653202772933712789148286281166880914071696742669928485740894239686134280982185623756474146606421007240010244982217345743883019718832853003700287306269048496697311180566522883236369497966665149708420746085602879925483484786578579215909534168911190507033791858158025896767350409132776107737074833016975347543958236253718208731246677305143359068457139350329311558477705994011507444693438461297979856794667570599615589210167072353011842415902630152484863849306931387676255713998272940235730057936781286229268114117056721691994181489802521121494906790410521085395782020875444396116726764323743949118266336008396555690989794036850113402118912903924758129049993841667914291224623398139638114347716152401852654212975513"
        },
        "r_credential": null
      },
      "signature_correctness_proof": {
        "se": "7389101072849649824454671619934481206390408696172374776706132130830852505553777512621699224128585982066510652760350841585818494845565804185005032215728058013772053943380233596885789458174438430377660746079601697197992642202346397877890266334362420122097081087341631407919368902425398528797169890796752573579141783677492332582564917048795536081179768030204759284466513976418502580400829233573757872665015674641498269039709463314850619314971639460384249395359527219174233919940848883500891384270224135664374739575068970646003005767851429127501212816039832039983072204772684186909722582028934222526812450725827815967735",
        "c": "72514346210534670489440934429267714141473882452528609952871165388629684123215"
      },
      "rev_reg": null,
      "witness": null
    },
    "credential_offer": {
      "schema_id": "KfoDwEpcJoNCdb6Akeeb9w:2:fabername:0.1.0",
      "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
      "key_correctness_proof": {
        "c": "105835522100817049279115890207661235959813861417542347921955016516499698460408",
        "xz_cap": "1638410429849068989186889886329186415503237595966138239326684715522306176939330430422962672635868280243364686157095845946855029759003202229849823369549672435347542347310116363153191778701074666549590622528565922643845459639346822272507202221265812273915276087838802367593814067319456174951725981285465872668804098254211976860311382669285349578818157199002875666800666446356669413162433033247577238934208937963747304444128697891906485633917779181097180891193813187210430415208454609002515583887914364332380562008017400911109748458911158043146375046496669294969933051875073198539080944750906007049541876256606442615972630798553606560575292682889278021859167231774358807663808872220996947800248293",
        "xr_cap": [
          [
            "name",
            "2212790099987316622238013756877890508925740303728480902368255518679851241809667621080863637673008984010614955985128137614148029684347689909707459907916556309387654059359756426736719874522005004401570478975779268727068856001949706361437011734013562874452334026853232737603867894422839993244385280894108080889803897004184189576923382136916690773564610387645194831063163142042547339599531122132647978380751598647968385685317726686690041015652465761427098912576022207624349768618863904006182443979006705174714444653030564823500671060909130107714013704425173107572488111362933172177878848614750711559544670198377925828197026625719050934813362114960044632184060631909610360647839650091257314984066087"
          ],
          [
            "master_secret",
            "440045062106029681289316032592875758739070795133528029791351804720090360444954389456368947483772178089013920510857183982992020677726662859633322071465468507383499119294357282369486426242251668786234577534494997180652712914791113032475116902356157270058421024986428917457678911888755160380647906835082778219542124218396960761707604194634835759159383200675778077130054953252195233963123672931101402388749963521771132602208729355867271159447477045600628092315007652059906062486276195651768995377953917119405617168714035214672845120759894295600738759112884548057562897308431153679656007198628335401693943981265208995512239809273639959907992194511192024716589689281515003980601784440092947703579012"
          ]
        ]
      },
      "nonce": "900640897750233209326279"
    },
    "credential_values": {
      "name": "Alice Jones"
    },
    "initiator": "self",
    "credential_definition_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
  }
}

Alice
Get /credentials
{
  "results": [
    {
      "referent": "a38248ab-f2e9-47f5-a5e7-ac475ea06b35",
      "attrs": {
        "name": "Alice Jones"
      },
      "schema_id": "3avoBCqDMFHFaKUHug9s8W:2:faber:0.1.0",
      "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:13:default",
      "rev_reg_id": null,
      "cred_rev_id": null
    }
  ]
}

------------
Requesting Proof
--------------

Faber request presentation (proof) of credential from Alice
Alice presents (proof) of credential to Faber

Alice now has her Faber credential. Let’s have the Faber agent send a request 
for a presentation (a proof) using that credential. 
This should be pretty easy for you at this point.

From the Faber browser tab, get ready to execute the 
 endpoint. Replace the pre-populated text with the following. 
 In doing so, use the techniques we used in issuing the credential 
 to replace the string values for each instance of cred_def_id (there are three) 
 and connection_id.

Faber
POST /presentation_exchange/send_request

{  
  "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
  "version": "1.0.0",
  "name": "Proof of Name",
  "requested_attributes": 
  [
    {
      "name": "Alice Jones",
      "restrictions": 
      [
        {"cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"}
      ]
    }
  ],
  "requested_predicates": 
  [

  ]
}

Response

{
  "state": "request_sent",
  "thread_id": "b16296d0-b9e3-47d6-919b-83c76030df9f",
  "presentation_request": {
    "name": "Proof of Name",
    "version": "1.0.0",
    "nonce": "43920717856735666242804213433487724698",
    "requested_attributes": {
      "15f10ee1-2dbb-45c6-b25b-b3e5e4c37647": {
        "name": "Alice Jones",
        "restrictions": [
          {
            "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
          }
        ]
      }
    },
    "requested_predicates": {}
  },
  "updated_at": "2019-08-26 21:53:56.764847Z",
  "created_at": "2019-08-26 21:53:56.764847Z",
  "initiator": "self",
  "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
  "presentation_exchange_id": "afbc0823-fdfb-42c7-b3a5-d4b3eb9c7d1f"
}

Webhook events
Sink: /topic/presentations/ POST
JSON:
{
  "topic": "presentations",
  "data": {
    "state": "request_sent",
    "thread_id": "b16296d0-b9e3-47d6-919b-83c76030df9f",
    "presentation_request": {
      "name": "Proof of Name",
      "version": "1.0.0",
      "nonce": "43920717856735666242804213433487724698",
      "requested_attributes": {
        "15f10ee1-2dbb-45c6-b25b-b3e5e4c37647": {
          "name": "Alice Jones",
          "restrictions": [
            {
              "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
            }
          ]
        }
      },
      "requested_predicates": {}
    },
    "updated_at": "2019-08-26 21:53:56.764847Z",
    "created_at": "2019-08-26 21:53:56.764847Z",
    "initiator": "self",
    "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
    "presentation_exchange_id": "afbc0823-fdfb-42c7-b3a5-d4b3eb9c7d1f"
  }
}

presentation_exchange_id = afbc0823-fdfb-42c7-b3a5-d4b3eb9c7d1f

Note that in the response, the state is request_sent. 
That is because when the HTTP response was generated 
(immediately after sending the request), Alice’s agent had not yet responded 
to the request. We’ll have to do another request to verify the presentation worked. 
Copy the value of the presentation_exchange_id field from the response and 
use it in executing the GET /presentation_exchange/{id} endpoint. 
That should return a result showing a status of verified. Proof positive!

-----------
Verify Presentation request
----------
Faber

GET /presentation_exchange/{id}   Fetch a single presentation exchange record

afbc0823-fdfb-42c7-b3a5-d4b3eb9c7d1f

Response

{
  "state": "request_sent",
  "thread_id": "b16296d0-b9e3-47d6-919b-83c76030df9f",
  "presentation_request": {
    "name": "Proof of Name",
    "version": "1.0.0",
    "nonce": "43920717856735666242804213433487724698",
    "requested_attributes": {
      "15f10ee1-2dbb-45c6-b25b-b3e5e4c37647": {
        "name": "Alice Jones",
        "restrictions": [
          {
            "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
          }
        ]
      }
    },
    "requested_predicates": {}
  },
  "updated_at": "2019-08-26 21:53:56.764847Z",
  "created_at": "2019-08-26 21:53:56.764847Z",
  "initiator": "self",
  "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
  "presentation_exchange_id": "afbc0823-fdfb-42c7-b3a5-d4b3eb9c7d1f"
}

No Webhook events

Notes

As with the issue credential process, the agents handled some of the 
presentation steps without bothering the controller. 
In this case, Alice’s agent processed the presentation request automatically 
because it was started with the --auto-respond-presentation-request parameter set, 
and her wallet contained exactly one credential that satisfied the 
presentation-request from the Faber agent. Similarly, the Faber agent was 
started with the --auto-verify-presentation parameter and so on receipt of 
the presentation, it verified the presentation and updated the status accordingly.

This fails each time state is not changed

Alice

GET /presentation_exchange Fetch all presentation exchange records

{
  "results": [
    {
      "state": "request_received",
      "presentation_exchange_id": "d59b3d59-c8c2-41b1-a0dc-e59f76db255b",
      "presentation_request": {
        "name": "faber",
        "version": "0.1.0",
        "nonce": "229616456018769739853239541551604309973",
        "requested_attributes": {
          "6a7ddfb6-c52c-4bee-b0b4-6d3bf5b87b5c": {
            "name": "name",
            "restrictions": [
              {
                "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:2:faber:0.1.0"
              }
            ]
          }
        },
        "requested_predicates": {
          "333ba7b1-7b8b-4c02-ae50-b3852f650f31": {}
        }
      },
      "thread_id": "eaa8c7e1-1982-4d2f-a0bb-a828bcc08f9b",
      "connection_id": "1a87156b-1ccc-49f9-b553-4ec70c3fe22b",
      "initiator": "external"
    },
    {
      "created_at": "2019-08-26 21:53:56.820394Z",
      "state": "request_received",
      "presentation_exchange_id": "262fa664-b50d-4c8c-b5b8-305683292884",
      "updated_at": "2019-08-26 21:53:56.820394Z",
      "presentation_request": {
        "name": "Proof of Name",
        "version": "1.0.0",
        "nonce": "43920717856735666242804213433487724698",
        "requested_attributes": {
          "15f10ee1-2dbb-45c6-b25b-b3e5e4c37647": {
            "name": "Alice Jones",
            "restrictions": [
              {
                "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
              }
            ]
          }
        },
        "requested_predicates": {}
      },
      "thread_id": "b16296d0-b9e3-47d6-919b-83c76030df9f",
      "connection_id": "4193344d-c71b-4628-b582-2531feb1770e",
      "initiator": "external"
    }
  ]
}
swcurran commented 5 years ago

@nrempel - can you please take a look and get back to Sam? Thanks!

SmithSamuelM commented 5 years ago

Here is the response body nd log from the presentation send request (faber)

{
  "state": "request_sent",
  "thread_id": "a59c0b2d-cd2e-4fca-a847-1aef466ff162",
  "presentation_request": {
    "name": "Proof of Name",
    "version": "1.0.0",
    "nonce": "17712088331325616707738222681913675771",
    "requested_attributes": {
      "39b5eb3c-47f9-4716-9909-74f78d6e86dd": {
        "name": "Alice Jones",
        "restrictions": [
          {
            "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
          }
        ]
      }
    },
    "requested_predicates": {}
  },
  "updated_at": "2019-08-27 16:42:32.533013Z",
  "created_at": "2019-08-27 16:42:32.533013Z",
  "initiator": "self",
  "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
  "presentation_exchange_id": "45938dab-be90-46c9-9725-d522b5f77d6a"
}

2019-08-27 10:42:32,533 indy.non_secrets DEBUG add_wallet_record: >>> wallet_handle: 2, type_: 'presentation_exchange', id: '45938dab-be90-46c9-9725-d522b5f77d6a', value: '{"state": "request_sent", "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7", "thread_id": "a59c0b2d-cd2e-4fca-a847-1aef466ff162", "initiator": "self", "created_at": "2019-08-27 16:42:32.533013Z", "updated_at": "2019-08-27 16:42:32.533013Z", "presentation_request": {"name": "Proof of Name", "version": "1.0.0", "nonce": "17712088331325616707738222681913675771", "requested_attributes": {"39b5eb3c-47f9-4716-9909-74f78d6e86dd": {"name": "Alice Jones", "restrictions": [{"cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"}]}}, "requested_predicates": {}}}', tags_json: '{"state": "request_sent", "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7", "thread_id": "a59c0b2d-cd2e-4fca-a847-1aef466ff162", "initiator": "self"}'
2019-08-27 10:42:32,534 indy.libindy DEBUG do_call: >>> name: indy_add_wallet_record, args: (c_int(2), c_char_p(4477711760), c_char_p(4478000576), c_char_p(140730916193040), c_char_p(4450424784), <CFunctionType object at 0x1094feef0>)
2019-08-27 10:42:32,535 indy.libindy DEBUG do_call: Function indy_add_wallet_record returned err: 0
2019-08-27 10:42:32,535 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:42:32,535 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:42:32,535 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:77 | AddRecord command received
2019-08-27 10:42:32,540 indy.libindy DEBUG _indy_callback: >>> command_handle: 750, err , args: ()
2019-08-27 10:42:32,541 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:42:32,541 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 750, err , args: ()
2019-08-27 10:42:32,541 indy.libindy DEBUG _indy_loop_callback: Function returned None
2019-08-27 10:42:32,541 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:42:32,541 indy.non_secrets DEBUG add_wallet_record: <<< res: None
2019-08-27 10:42:32,543 aries_cloudagent.transport.outbound.queue.basic DEBUG Enqueuing message: ('presentations', {'state': 'request_sent', 'thread_id': 'a59c0b2d-cd2e-4fca-a847-1aef466ff162', 'presentation_request': {'name': 'Proof of Name', 'version': '1.0.0', 'nonce': '17712088331325616707738222681913675771', 'requested_attributes': {'39b5eb3c-47f9-4716-9909-74f78d6e86dd': {'name': 'Alice Jones', 'restrictions': [{'cred_def_id': '3avoBCqDMFHFaKUHug9s8W:3:CL:15:default'}]}}, 'requested_predicates': {}}, 'updated_at': '2019-08-27 16:42:32.533013Z', 'created_at': '2019-08-27 16:42:32.533013Z', 'initiator': 'self', 'connection_id': '538f387a-91e2-49b7-9892-dbf7688ba5a7', 'presentation_exchange_id': '45938dab-be90-46c9-9725-d522b5f77d6a'})
2019-08-27 10:42:32,544 indy.non_secrets DEBUG get_wallet_record: >>> wallet_handle: 2, type_: 'connection', id: '538f387a-91e2-49b7-9892-dbf7688ba5a7', options_json: '{"retrieveType": true, "retrieveValue": true, "retrieveTags": true}'
2019-08-27 10:42:32,544 indy.libindy DEBUG do_call: >>> name: indy_get_wallet_record, args: (c_int(2), c_char_p(4451883872), c_char_p(4477656432), c_char_p(4451655472), <CFunctionType object at 0x1095afbb0>)
2019-08-27 10:42:32,544 indy.libindy DEBUG do_call: Function indy_get_wallet_record returned err: 0
2019-08-27 10:42:32,544 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:42:32,544 aries_cloudagent.transport.outbound.queue.basic DEBUG Dequeuing message: ('presentations', {'state': 'request_sent', 'thread_id': 'a59c0b2d-cd2e-4fca-a847-1aef466ff162', 'presentation_request': {'name': 'Proof of Name', 'version': '1.0.0', 'nonce': '17712088331325616707738222681913675771', 'requested_attributes': {'39b5eb3c-47f9-4716-9909-74f78d6e86dd': {'name': 'Alice Jones', 'restrictions': [{'cred_def_id': '3avoBCqDMFHFaKUHug9s8W:3:CL:15:default'}]}}, 'requested_predicates': {}}, 'updated_at': '2019-08-27 16:42:32.533013Z', 'created_at': '2019-08-27 16:42:32.533013Z', 'initiator': 'self', 'connection_id': '538f387a-91e2-49b7-9892-dbf7688ba5a7', 'presentation_exchange_id': '45938dab-be90-46c9-9725-d522b5f77d6a'})
2019-08-27 10:42:32,545 aries_cloudagent.admin.server DEBUG Sending webhook to : http://localhost:8080/topic/presentations/ (attempt 1)
2019-08-27 10:42:32,548 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:42:32,549 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:101 | GetRecord command received
2019-08-27 10:42:32,550 indy.libindy DEBUG _indy_callback: >>> command_handle: 751, err , args: (b'{"type":"connection","id":"538f387a-91e2-49b7-9892-dbf7688ba5a7","value":"{\\"state\\": \\"active\\", \\"my_did\\": \\"5jpjNPYVE1LpH6JRQgx5Qd\\", \\"their_did\\": \\"JK7aKyr22cQ4B1tpeiT1ti\\", \\"initiator\\": \\"self\\", \\"invitation_key\\": \\"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc\\", \\"routing_state\\": \\"none\\", \\"accept\\": \\"auto\\", \\"invitation_mode\\": \\"once\\", \\"created_at\\": \\"2019-08-26 20:36:19.350923Z\\", \\"updated_at\\": \\"2019-08-26 20:40:09.901121Z\\", \\"error_msg\\": null, \\"their_label\\": \\"AliceAgent\\"}","tags":{"routing_state":"none","invitation_mode":"once","invitation_key":"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc","my_did":"5jpjNPYVE1LpH6JRQgx5Qd","accept":"auto","their_did":"JK7aKyr22cQ4B1tpeiT1ti","state":"active","initiator":"self"}}',)
2019-08-27 10:42:32,550 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:42:32,550 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 751, err , args: (b'{"type":"connection","id":"538f387a-91e2-49b7-9892-dbf7688ba5a7","value":"{\\"state\\": \\"active\\", \\"my_did\\": \\"5jpjNPYVE1LpH6JRQgx5Qd\\", \\"their_did\\": \\"JK7aKyr22cQ4B1tpeiT1ti\\", \\"initiator\\": \\"self\\", \\"invitation_key\\": \\"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc\\", \\"routing_state\\": \\"none\\", \\"accept\\": \\"auto\\", \\"invitation_mode\\": \\"once\\", \\"created_at\\": \\"2019-08-26 20:36:19.350923Z\\", \\"updated_at\\": \\"2019-08-26 20:40:09.901121Z\\", \\"error_msg\\": null, \\"their_label\\": \\"AliceAgent\\"}","tags":{"routing_state":"none","invitation_mode":"once","invitation_key":"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc","my_did":"5jpjNPYVE1LpH6JRQgx5Qd","accept":"auto","their_did":"JK7aKyr22cQ4B1tpeiT1ti","state":"active","initiator":"self"}}',)
2019-08-27 10:42:32,550 indy.libindy DEBUG _indy_loop_callback: Function returned b'{"type":"connection","id":"538f387a-91e2-49b7-9892-dbf7688ba5a7","value":"{\\"state\\": \\"active\\", \\"my_did\\": \\"5jpjNPYVE1LpH6JRQgx5Qd\\", \\"their_did\\": \\"JK7aKyr22cQ4B1tpeiT1ti\\", \\"initiator\\": \\"self\\", \\"invitation_key\\": \\"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc\\", \\"routing_state\\": \\"none\\", \\"accept\\": \\"auto\\", \\"invitation_mode\\": \\"once\\", \\"created_at\\": \\"2019-08-26 20:36:19.350923Z\\", \\"updated_at\\": \\"2019-08-26 20:40:09.901121Z\\", \\"error_msg\\": null, \\"their_label\\": \\"AliceAgent\\"}","tags":{"routing_state":"none","invitation_mode":"once","invitation_key":"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc","my_did":"5jpjNPYVE1LpH6JRQgx5Qd","accept":"auto","their_did":"JK7aKyr22cQ4B1tpeiT1ti","state":"active","initiator":"self"}}'
2019-08-27 10:42:32,550 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:42:32,550 indy.non_secrets DEBUG get_wallet_record: <<< res: '{"type":"connection","id":"538f387a-91e2-49b7-9892-dbf7688ba5a7","value":"{\\"state\\": \\"active\\", \\"my_did\\": \\"5jpjNPYVE1LpH6JRQgx5Qd\\", \\"their_did\\": \\"JK7aKyr22cQ4B1tpeiT1ti\\", \\"initiator\\": \\"self\\", \\"invitation_key\\": \\"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc\\", \\"routing_state\\": \\"none\\", \\"accept\\": \\"auto\\", \\"invitation_mode\\": \\"once\\", \\"created_at\\": \\"2019-08-26 20:36:19.350923Z\\", \\"updated_at\\": \\"2019-08-26 20:40:09.901121Z\\", \\"error_msg\\": null, \\"their_label\\": \\"AliceAgent\\"}","tags":{"routing_state":"none","invitation_mode":"once","invitation_key":"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc","my_did":"5jpjNPYVE1LpH6JRQgx5Qd","accept":"auto","their_did":"JK7aKyr22cQ4B1tpeiT1ti","state":"active","initiator":"self"}}'
2019-08-27 10:42:32,551 indy.did DEBUG get_my_did_with_meta: >>> wallet_handle: 2, did: '5jpjNPYVE1LpH6JRQgx5Qd'
2019-08-27 10:42:32,551 indy.libindy DEBUG do_call: >>> name: indy_get_my_did_with_meta, args: (c_int(2), c_char_p(4477578000), <CFunctionType object at 0x1095afd50>)
2019-08-27 10:42:32,551 indy.libindy DEBUG do_call: Function indy_get_my_did_with_meta returned err: 0
2019-08-27 10:42:32,551 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:42:32,551 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:144 | DidCommand command received
2019-08-27 10:42:32,551 indy.libindy.native.indy.commands.did INFO  src/commands/did.rs:141 | GetMyDidWithMeta command received
2019-08-27 10:42:32,551 indy.libindy.native.indy.commands.did DEBUG     src/commands/did.rs:267 | get_my_did_with_meta >>> wallet_handle: WalletHandle(2), my_did: "5jpjNPYVE1LpH6JRQgx5Qd"
2019-08-27 10:42:32,552 indy.libindy.native.indy.commands.did DEBUG     src/commands/did.rs:285 | get_my_did_with_meta <<< res: "{\"did\":\"5jpjNPYVE1LpH6JRQgx5Qd\",\"verkey\":\"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN\",\"tempVerkey\":null,\"metadata\":null}"
2019-08-27 10:42:32,552 indy.libindy DEBUG _indy_callback: >>> command_handle: 752, err , args: (b'{"did":"5jpjNPYVE1LpH6JRQgx5Qd","verkey":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","tempVerkey":null,"metadata":null}',)
2019-08-27 10:42:32,552 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:42:32,552 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 752, err , args: (b'{"did":"5jpjNPYVE1LpH6JRQgx5Qd","verkey":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","tempVerkey":null,"metadata":null}',)
2019-08-27 10:42:32,552 indy.libindy DEBUG _indy_loop_callback: Function returned b'{"did":"5jpjNPYVE1LpH6JRQgx5Qd","verkey":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","tempVerkey":null,"metadata":null}'
2019-08-27 10:42:32,552 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:42:32,552 indy.did DEBUG get_my_did_with_meta: <<< res: '{"did":"5jpjNPYVE1LpH6JRQgx5Qd","verkey":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","tempVerkey":null,"metadata":null}'
2019-08-27 10:42:32,553 indy.non_secrets DEBUG open_wallet_search: >>> wallet_handle: 2, type_: 'did_doc', query_json: '{"did": "JK7aKyr22cQ4B1tpeiT1ti"}', options_json: '{"retrieveRecords": true, "retrieveTotalCount": true, "retrieveType": true, "retrieveValue": true, "retrieveTags": true}'
2019-08-27 10:42:32,553 indy.libindy DEBUG do_call: >>> name: indy_open_wallet_search, args: (c_int(2), c_char_p(4451767936), c_char_p(4477807904), c_char_p(4450655440), <CFunctionType object at 0x1094fe1f0>)
2019-08-27 10:42:32,553 indy.libindy DEBUG do_call: Function indy_open_wallet_search returned err: 0
2019-08-27 10:42:32,553 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:42:32,553 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:42:32,553 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:105 | OpenSearch command received
2019-08-27 10:42:32,554 indy.libindy DEBUG _indy_callback: >>> command_handle: 753, err , args: (182,)
2019-08-27 10:42:32,554 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:42:32,554 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 753, err , args: (182,)
2019-08-27 10:42:32,554 indy.libindy DEBUG _indy_loop_callback: Function returned 182
2019-08-27 10:42:32,554 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:42:32,554 indy.non_secrets DEBUG open_wallet_search: <<< res: 182
2019-08-27 10:42:32,554 indy.non_secrets DEBUG fetch_wallet_search_next_records: >>> wallet_handle: 2, wallet_search_handle: 182, count: 100
2019-08-27 10:42:32,554 indy.libindy DEBUG do_call: >>> name: indy_fetch_wallet_search_next_records, args: (c_int(2), c_int(182), c_uint(100), <CFunctionType object at 0x1094fe390>)
2019-08-27 10:42:32,554 indy.libindy DEBUG do_call: Function indy_fetch_wallet_search_next_records returned err: 0
2019-08-27 10:42:32,554 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:42:32,554 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:42:32,554 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:109 | SearchNextRecords command received
2019-08-27 10:42:32,555 indy.libindy DEBUG _indy_callback: >>> command_handle: 754, err , args: (b'{"totalCount":1,"records":[{"type":"did_doc","id":"d3a5238901f04a9bafb716c1daa39153","value":"{\\"@context\\": \\"https://w3id.org/did/v1\\", \\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti\\", \\"publicKey\\": [{\\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti#1\\", \\"type\\": \\"Ed25519VerificationKey2018\\", \\"controller\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti\\", \\"publicKeyBase58\\": \\"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab\\"}], \\"authentication\\": [{\\"type\\": \\"Ed25519SignatureAuthentication2018\\", \\"publicKey\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti#1\\"}], \\"service\\": [{\\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti;indy\\", \\"type\\": \\"IndyAgent\\", \\"priority\\": 0, \\"recipientKeys\\": [\\"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab\\"], \\"serviceEndpoint\\": \\"http://localhost:8030\\"}]}","tags":{"did":"JK7aKyr22cQ4B1tpeiT1ti"}}]}',)
2019-08-27 10:42:32,555 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:42:32,555 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 754, err , args: (b'{"totalCount":1,"records":[{"type":"did_doc","id":"d3a5238901f04a9bafb716c1daa39153","value":"{\\"@context\\": \\"https://w3id.org/did/v1\\", \\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti\\", \\"publicKey\\": [{\\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti#1\\", \\"type\\": \\"Ed25519VerificationKey2018\\", \\"controller\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti\\", \\"publicKeyBase58\\": \\"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab\\"}], \\"authentication\\": [{\\"type\\": \\"Ed25519SignatureAuthentication2018\\", \\"publicKey\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti#1\\"}], \\"service\\": [{\\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti;indy\\", \\"type\\": \\"IndyAgent\\", \\"priority\\": 0, \\"recipientKeys\\": [\\"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab\\"], \\"serviceEndpoint\\": \\"http://localhost:8030\\"}]}","tags":{"did":"JK7aKyr22cQ4B1tpeiT1ti"}}]}',)
2019-08-27 10:42:32,555 indy.libindy DEBUG _indy_loop_callback: Function returned b'{"totalCount":1,"records":[{"type":"did_doc","id":"d3a5238901f04a9bafb716c1daa39153","value":"{\\"@context\\": \\"https://w3id.org/did/v1\\", \\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti\\", \\"publicKey\\": [{\\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti#1\\", \\"type\\": \\"Ed25519VerificationKey2018\\", \\"controller\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti\\", \\"publicKeyBase58\\": \\"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab\\"}], \\"authentication\\": [{\\"type\\": \\"Ed25519SignatureAuthentication2018\\", \\"publicKey\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti#1\\"}], \\"service\\": [{\\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti;indy\\", \\"type\\": \\"IndyAgent\\", \\"priority\\": 0, \\"recipientKeys\\": [\\"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab\\"], \\"serviceEndpoint\\": \\"http://localhost:8030\\"}]}","tags":{"did":"JK7aKyr22cQ4B1tpeiT1ti"}}]}'
2019-08-27 10:42:32,555 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:42:32,555 indy.non_secrets DEBUG fetch_wallet_search_next_records: <<< res: '{"totalCount":1,"records":[{"type":"did_doc","id":"d3a5238901f04a9bafb716c1daa39153","value":"{\\"@context\\": \\"https://w3id.org/did/v1\\", \\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti\\", \\"publicKey\\": [{\\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti#1\\", \\"type\\": \\"Ed25519VerificationKey2018\\", \\"controller\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti\\", \\"publicKeyBase58\\": \\"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab\\"}], \\"authentication\\": [{\\"type\\": \\"Ed25519SignatureAuthentication2018\\", \\"publicKey\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti#1\\"}], \\"service\\": [{\\"id\\": \\"did:sov:JK7aKyr22cQ4B1tpeiT1ti;indy\\", \\"type\\": \\"IndyAgent\\", \\"priority\\": 0, \\"recipientKeys\\": [\\"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab\\"], \\"serviceEndpoint\\": \\"http://localhost:8030\\"}]}","tags":{"did":"JK7aKyr22cQ4B1tpeiT1ti"}}]}'
2019-08-27 10:42:32,555 indy.non_secrets DEBUG fetch_wallet_search_next_records: >>> wallet_handle: 2, wallet_search_handle: 182, count: 100
2019-08-27 10:42:32,556 indy.libindy DEBUG do_call: >>> name: indy_fetch_wallet_search_next_records, args: (c_int(2), c_int(182), c_uint(100), <CFunctionType object at 0x1094fe390>)
2019-08-27 10:42:32,556 indy.libindy DEBUG do_call: Function indy_fetch_wallet_search_next_records returned err: 0
2019-08-27 10:42:32,556 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:42:32,556 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:42:32,556 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:109 | SearchNextRecords command received
2019-08-27 10:42:32,557 indy.libindy DEBUG _indy_callback: >>> command_handle: 755, err , args: (b'{"totalCount":1,"records":null}',)
2019-08-27 10:42:32,558 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:42:32,558 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 755, err , args: (b'{"totalCount":1,"records":null}',)
2019-08-27 10:42:32,558 indy.libindy DEBUG _indy_loop_callback: Function returned b'{"totalCount":1,"records":null}'
2019-08-27 10:42:32,558 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:42:32,558 indy.non_secrets DEBUG fetch_wallet_search_next_records: <<< res: '{"totalCount":1,"records":null}'
2019-08-27 10:42:32,558 indy.non_secrets DEBUG close_wallet_search: >>> wallet_search_handle: 182
2019-08-27 10:42:32,558 indy.libindy DEBUG do_call: >>> name: indy_close_wallet_search, args: (c_int(182), <CFunctionType object at 0x1094fe600>)
2019-08-27 10:42:32,558 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:42:32,558 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:113 | CloseSearch command received
2019-08-27 10:42:32,558 indy.libindy DEBUG do_call: Function indy_close_wallet_search returned err: 0
2019-08-27 10:42:32,559 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:42:32,559 indy.libindy DEBUG _indy_callback: >>> command_handle: 756, err , args: ()
2019-08-27 10:42:32,559 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:42:32,559 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 756, err , args: ()
2019-08-27 10:42:32,559 indy.libindy DEBUG _indy_loop_callback: Function returned None
2019-08-27 10:42:32,559 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:42:32,559 indy.non_secrets DEBUG close_wallet_search: <<< res: None
2019-08-27 10:42:32,560 indy.crypto DEBUG pack_message: >>> wallet_handle: 2, message: '{"@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/credential-presentation/0.1/presentation-request", "@id": "a59c0b2d-cd2e-4fca-a847-1aef466ff162", "request": "{\\"name\\": \\"Proof of Name\\", \\"version\\": \\"1.0.0\\", \\"nonce\\": \\"17712088331325616707738222681913675771\\", \\"requested_attributes\\": {\\"39b5eb3c-47f9-4716-9909-74f78d6e86dd\\": {\\"name\\": \\"Alice Jones\\", \\"restrictions\\": [{\\"cred_def_id\\": \\"3avoBCqDMFHFaKUHug9s8W:3:CL:15:default\\"}]}}, \\"requested_predicates\\": {}}"}', recipient_verkeys: ['ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab'], sender_verkey: '3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN'
2019-08-27 10:42:32,561 indy.libindy DEBUG do_call: >>> name: indy_pack_message, args: (c_int(2), b'{"@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/credential-presentation/0.1/presentation-request", "@id": "a59c0b2d-cd2e-4fca-a847-1aef466ff162", "request": "{\\"name\\": \\"Proof of Name\\", \\"version\\": \\"1.0.0\\", \\"nonce\\": \\"17712088331325616707738222681913675771\\", \\"requested_attributes\\": {\\"39b5eb3c-47f9-4716-9909-74f78d6e86dd\\": {\\"name\\": \\"Alice Jones\\", \\"restrictions\\": [{\\"cred_def_id\\": \\"3avoBCqDMFHFaKUHug9s8W:3:CL:15:default\\"}]}}, \\"requested_predicates\\": {}}"}', c_uint(479), c_char_p(4477635376), c_char_p(4477806864), <CFunctionType object at 0x1095afef0>)
2019-08-27 10:42:32,561 indy.libindy DEBUG do_call: Function indy_pack_message returned err: 0
2019-08-27 10:42:32,561 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:42:32,561 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:132 | CryptoCommand command received
2019-08-27 10:42:32,561 indy.libindy.native.indy.commands.crypto INFO   src/commands/crypto.rs:138 | PackMessage command received
2019-08-27 10:42:32,565 indy.libindy DEBUG _indy_callback: >>> command_handle: 757, err , args: (b'{"protected":"eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiJpQXBpQmdjdzg4TVhSUUZrVVVDYVNuVkxMdjdEbGtMY3hfUk5rRmg5MnBsN3pjbTdlTlRzbnVZUnV1UGxHTFc5IiwiaGVhZGVyIjp7ImtpZCI6IkFTSDE5d05DcXVLQUo3ZEg0TEZ5ZEVydlBtRXozMlVTVnp2WExuMUhCOGFiIiwiaXYiOiIzdlpNdWxiRURBZjZINkxzcmQ4WkRQQmswdnV2WTZSQiIsInNlbmRlciI6Imo4X2Y4MV9Bdm9keXpySmIzWndoVUZrNjJTZlBoNDNwUVNJT24xSkY2bGItcUdRaWJOWmRPdUVRYUV0UjRsUmhxVldLR2VEa1N2NHRNYmk2WHFsQXc2NHNKVjZZZWJBOXVLTE50ZHB3YXRjVXB1NjlzRTlFaDhrV1hPQT0ifX1dfQ==","iv":"K_7pTthGdWBwKWx6","ciphertext":"CHGDtt6NppqfMyHx5oIAXxyrt7vf-fNSs-4voUAl95xwA81NMCKiQrREFW2qUXG8NEVP6XbUJJC-CZV53Qnkw8oKNAlvvG0ZmCthWfjpsAwPSZWrxbm9NpPvM32qI-BMXKU34eugjCuem6_jUoNzJe_Y2NdFcNJKAODNYo3s85pSjhgf6nsldUD7b4CeWjZ4FB71L6IqT_clcCAarDsl4r-6J2wavTYzFHB9vDrEft5SGGEcOg9VtbHt27H1bIviI3EJEqsOqiIM22xyL7_wJMEuhOHG2_3z9WF2TAuPl118qWm3ob8MNEd6CCSNN2CLrEPXv2QsXvC4IkVhluIVN0paujbNYWaHpTrPW-rD-0Z1CPAKlvM1cYA0WsyyZYdmqFGy5ym6HOS-WeQahKW_ZCkCTsNWSzTNewLihldV6mT1ieUu4sY-M58DEBzrfr7aJuhRdzrHuUgxAGuMa_M1WbP51RdNNfKUjcvTfdoF_pjaxWp68Lt6jHFQxM07jCncXMFmqCPFvKVgI0npgDbjHVy1QgTiMStLl7uDCntL-Yg6AjuNtscQHXMayCb3tPJkb0BB02v-EH0f5wLWUrQf1JDdamz9QcBaOmY9xS9OGIWkxoUnDU0v3QG6QTxKeU8=","tag":"-f6dGa5ZbcxJk3dHO5o4iQ=="}',)
2019-08-27 10:42:32,565 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:42:32,565 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 757, err , args: (b'{"protected":"eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiJpQXBpQmdjdzg4TVhSUUZrVVVDYVNuVkxMdjdEbGtMY3hfUk5rRmg5MnBsN3pjbTdlTlRzbnVZUnV1UGxHTFc5IiwiaGVhZGVyIjp7ImtpZCI6IkFTSDE5d05DcXVLQUo3ZEg0TEZ5ZEVydlBtRXozMlVTVnp2WExuMUhCOGFiIiwiaXYiOiIzdlpNdWxiRURBZjZINkxzcmQ4WkRQQmswdnV2WTZSQiIsInNlbmRlciI6Imo4X2Y4MV9Bdm9keXpySmIzWndoVUZrNjJTZlBoNDNwUVNJT24xSkY2bGItcUdRaWJOWmRPdUVRYUV0UjRsUmhxVldLR2VEa1N2NHRNYmk2WHFsQXc2NHNKVjZZZWJBOXVLTE50ZHB3YXRjVXB1NjlzRTlFaDhrV1hPQT0ifX1dfQ==","iv":"K_7pTthGdWBwKWx6","ciphertext":"CHGDtt6NppqfMyHx5oIAXxyrt7vf-fNSs-4voUAl95xwA81NMCKiQrREFW2qUXG8NEVP6XbUJJC-CZV53Qnkw8oKNAlvvG0ZmCthWfjpsAwPSZWrxbm9NpPvM32qI-BMXKU34eugjCuem6_jUoNzJe_Y2NdFcNJKAODNYo3s85pSjhgf6nsldUD7b4CeWjZ4FB71L6IqT_clcCAarDsl4r-6J2wavTYzFHB9vDrEft5SGGEcOg9VtbHt27H1bIviI3EJEqsOqiIM22xyL7_wJMEuhOHG2_3z9WF2TAuPl118qWm3ob8MNEd6CCSNN2CLrEPXv2QsXvC4IkVhluIVN0paujbNYWaHpTrPW-rD-0Z1CPAKlvM1cYA0WsyyZYdmqFGy5ym6HOS-WeQahKW_ZCkCTsNWSzTNewLihldV6mT1ieUu4sY-M58DEBzrfr7aJuhRdzrHuUgxAGuMa_M1WbP51RdNNfKUjcvTfdoF_pjaxWp68Lt6jHFQxM07jCncXMFmqCPFvKVgI0npgDbjHVy1QgTiMStLl7uDCntL-Yg6AjuNtscQHXMayCb3tPJkb0BB02v-EH0f5wLWUrQf1JDdamz9QcBaOmY9xS9OGIWkxoUnDU0v3QG6QTxKeU8=","tag":"-f6dGa5ZbcxJk3dHO5o4iQ=="}',)
2019-08-27 10:42:32,565 indy.libindy DEBUG _indy_loop_callback: Function returned b'{"protected":"eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiJpQXBpQmdjdzg4TVhSUUZrVVVDYVNuVkxMdjdEbGtMY3hfUk5rRmg5MnBsN3pjbTdlTlRzbnVZUnV1UGxHTFc5IiwiaGVhZGVyIjp7ImtpZCI6IkFTSDE5d05DcXVLQUo3ZEg0TEZ5ZEVydlBtRXozMlVTVnp2WExuMUhCOGFiIiwiaXYiOiIzdlpNdWxiRURBZjZINkxzcmQ4WkRQQmswdnV2WTZSQiIsInNlbmRlciI6Imo4X2Y4MV9Bdm9keXpySmIzWndoVUZrNjJTZlBoNDNwUVNJT24xSkY2bGItcUdRaWJOWmRPdUVRYUV0UjRsUmhxVldLR2VEa1N2NHRNYmk2WHFsQXc2NHNKVjZZZWJBOXVLTE50ZHB3YXRjVXB1NjlzRTlFaDhrV1hPQT0ifX1dfQ==","iv":"K_7pTthGdWBwKWx6","ciphertext":"CHGDtt6NppqfMyHx5oIAXxyrt7vf-fNSs-4voUAl95xwA81NMCKiQrREFW2qUXG8NEVP6XbUJJC-CZV53Qnkw8oKNAlvvG0ZmCthWfjpsAwPSZWrxbm9NpPvM32qI-BMXKU34eugjCuem6_jUoNzJe_Y2NdFcNJKAODNYo3s85pSjhgf6nsldUD7b4CeWjZ4FB71L6IqT_clcCAarDsl4r-6J2wavTYzFHB9vDrEft5SGGEcOg9VtbHt27H1bIviI3EJEqsOqiIM22xyL7_wJMEuhOHG2_3z9WF2TAuPl118qWm3ob8MNEd6CCSNN2CLrEPXv2QsXvC4IkVhluIVN0paujbNYWaHpTrPW-rD-0Z1CPAKlvM1cYA0WsyyZYdmqFGy5ym6HOS-WeQahKW_ZCkCTsNWSzTNewLihldV6mT1ieUu4sY-M58DEBzrfr7aJuhRdzrHuUgxAGuMa_M1WbP51RdNNfKUjcvTfdoF_pjaxWp68Lt6jHFQxM07jCncXMFmqCPFvKVgI0npgDbjHVy1QgTiMStLl7uDCntL-Yg6AjuNtscQHXMayCb3tPJkb0BB02v-EH0f5wLWUrQf1JDdamz9QcBaOmY9xS9OGIWkxoUnDU0v3QG6QTxKeU8=","tag":"-f6dGa5ZbcxJk3dHO5o4iQ=="}'
2019-08-27 10:42:32,565 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:42:32,565 indy.crypto DEBUG pack_message: <<< res: b'{"protected":"eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiJpQXBpQmdjdzg4TVhSUUZrVVVDYVNuVkxMdjdEbGtMY3hfUk5rRmg5MnBsN3pjbTdlTlRzbnVZUnV1UGxHTFc5IiwiaGVhZGVyIjp7ImtpZCI6IkFTSDE5d05DcXVLQUo3ZEg0TEZ5ZEVydlBtRXozMlVTVnp2WExuMUhCOGFiIiwiaXYiOiIzdlpNdWxiRURBZjZINkxzcmQ4WkRQQmswdnV2WTZSQiIsInNlbmRlciI6Imo4X2Y4MV9Bdm9keXpySmIzWndoVUZrNjJTZlBoNDNwUVNJT24xSkY2bGItcUdRaWJOWmRPdUVRYUV0UjRsUmhxVldLR2VEa1N2NHRNYmk2WHFsQXc2NHNKVjZZZWJBOXVLTE50ZHB3YXRjVXB1NjlzRTlFaDhrV1hPQT0ifX1dfQ==","iv":"K_7pTthGdWBwKWx6","ciphertext":"CHGDtt6NppqfMyHx5oIAXxyrt7vf-fNSs-4voUAl95xwA81NMCKiQrREFW2qUXG8NEVP6XbUJJC-CZV53Qnkw8oKNAlvvG0ZmCthWfjpsAwPSZWrxbm9NpPvM32qI-BMXKU34eugjCuem6_jUoNzJe_Y2NdFcNJKAODNYo3s85pSjhgf6nsldUD7b4CeWjZ4FB71L6IqT_clcCAarDsl4r-6J2wavTYzFHB9vDrEft5SGGEcOg9VtbHt27H1bIviI3EJEqsOqiIM22xyL7_wJMEuhOHG2_3z9WF2TAuPl118qWm3ob8MNEd6CCSNN2CLrEPXv2QsXvC4IkVhluIVN0paujbNYWaHpTrPW-rD-0Z1CPAKlvM1cYA0WsyyZYdmqFGy5ym6HOS-WeQahKW_ZCkCTsNWSzTNewLihldV6mT1ieUu4sY-M58DEBzrfr7aJuhRdzrHuUgxAGuMa_M1WbP51RdNNfKUjcvTfdoF_pjaxWp68Lt6jHFQxM07jCncXMFmqCPFvKVgI0npgDbjHVy1QgTiMStLl7uDCntL-Yg6AjuNtscQHXMayCb3tPJkb0BB02v-EH0f5wLWUrQf1JDdamz9QcBaOmY9xS9OGIWkxoUnDU0v3QG6QTxKeU8=","tag":"-f6dGa5ZbcxJk3dHO5o4iQ=="}'
2019-08-27 10:42:32,565 aries_cloudagent.transport.outbound.queue.basic DEBUG Enqueuing message: <OutboundMessage(connection_id='538f387a-91e2-49b7-9892-dbf7688ba5a7', encoded=True, _endpoint=None, payload=b'{"protected":"eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiJpQXBpQmdjdzg4TVhSUUZrVVVDYVNuVkxMdjdEbGtMY3hfUk5rRmg5MnBsN3pjbTdlTlRzbnVZUnV1UGxHTFc5IiwiaGVhZGVyIjp7ImtpZCI6IkFTSDE5d05DcXVLQUo3ZEg0TEZ5ZEVydlBtRXozMlVTVnp2WExuMUhCOGFiIiwiaXYiOiIzdlpNdWxiRURBZjZINkxzcmQ4WkRQQmswdnV2WTZSQiIsInNlbmRlciI6Imo4X2Y4MV9Bdm9keXpySmIzWndoVUZrNjJTZlBoNDNwUVNJT24xSkY2bGItcUdRaWJOWmRPdUVRYUV0UjRsUmhxVldLR2VEa1N2NHRNYmk2WHFsQXc2NHNKVjZZZWJBOXVLTE50ZHB3YXRjVXB1NjlzRTlFaDhrV1hPQT0ifX1dfQ==","iv":"K_7pTthGdWBwKWx6","ciphertext":"CHGDtt6NppqfMyHx5oIAXxyrt7vf-fNSs-4voUAl95xwA81NMCKiQrREFW2qUXG8NEVP6XbUJJC-CZV53Qnkw8oKNAlvvG0ZmCthWfjpsAwPSZWrxbm9NpPvM32qI-BMXKU34eugjCuem6_jUoNzJe_Y2NdFcNJKAODNYo3s85pSjhgf6nsldUD7b4CeWjZ4FB71L6IqT_clcCAarDsl4r-6J2wavTYzFHB9vDrEft5SGGEcOg9VtbHt27H1bIviI3EJEqsOqiIM22xyL7_wJMEuhOHG2_3z9WF2TAuPl118qWm3ob8MNEd6CCSNN2CLrEPXv2QsXvC4IkVhluIVN0paujbNYWaHpTrPW-rD-0Z1CPAKlvM1cYA0WsyyZYdmqFGy5ym6HOS-WeQahKW_ZCkCTsNWSzTNewLihldV6mT1ieUu4sY-M58DEBzrfr7aJuhRdzrHuUgxAGuMa_M1WbP51RdNNfKUjcvTfdoF_pjaxWp68Lt6jHFQxM07jCncXMFmqCPFvKVgI0npgDbjHVy1QgTiMStLl7uDCntL-Yg6AjuNtscQHXMayCb3tPJkb0BB02v-EH0f5wLWUrQf1JDdamz9QcBaOmY9xS9OGIWkxoUnDU0v3QG6QTxKeU8=","tag":"-f6dGa5ZbcxJk3dHO5o4iQ=="}', reply_socket_id=None, reply_thread_id='a59c0b2d-cd2e-4fca-a847-1aef466ff162', reply_to_verkey=None, target=<ConnectionTarget(did='JK7aKyr22cQ4B1tpeiT1ti', endpoint='http://localhost:8030', label='AliceAgent', recipient_keys=['ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab'], routing_keys=[], sender_key='3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN')>)>
2019-08-27 10:42:32,567 aiohttp.access INFO 127.0.0.1 [27/Aug/2019:16:42:32 +0000] "POST /presentation_exchange/send_request HTTP/1.1" 200 915 "http://127.0.0.1:8021/api/doc" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15"
2019-08-27 10:42:32,567 aries_cloudagent.transport.outbound.queue.basic DEBUG Dequeuing message: <OutboundMessage(connection_id='538f387a-91e2-49b7-9892-dbf7688ba5a7', encoded=True, _endpoint=None, payload=b'{"protected":"eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiJpQXBpQmdjdzg4TVhSUUZrVVVDYVNuVkxMdjdEbGtMY3hfUk5rRmg5MnBsN3pjbTdlTlRzbnVZUnV1UGxHTFc5IiwiaGVhZGVyIjp7ImtpZCI6IkFTSDE5d05DcXVLQUo3ZEg0TEZ5ZEVydlBtRXozMlVTVnp2WExuMUhCOGFiIiwiaXYiOiIzdlpNdWxiRURBZjZINkxzcmQ4WkRQQmswdnV2WTZSQiIsInNlbmRlciI6Imo4X2Y4MV9Bdm9keXpySmIzWndoVUZrNjJTZlBoNDNwUVNJT24xSkY2bGItcUdRaWJOWmRPdUVRYUV0UjRsUmhxVldLR2VEa1N2NHRNYmk2WHFsQXc2NHNKVjZZZWJBOXVLTE50ZHB3YXRjVXB1NjlzRTlFaDhrV1hPQT0ifX1dfQ==","iv":"K_7pTthGdWBwKWx6","ciphertext":"CHGDtt6NppqfMyHx5oIAXxyrt7vf-fNSs-4voUAl95xwA81NMCKiQrREFW2qUXG8NEVP6XbUJJC-CZV53Qnkw8oKNAlvvG0ZmCthWfjpsAwPSZWrxbm9NpPvM32qI-BMXKU34eugjCuem6_jUoNzJe_Y2NdFcNJKAODNYo3s85pSjhgf6nsldUD7b4CeWjZ4FB71L6IqT_clcCAarDsl4r-6J2wavTYzFHB9vDrEft5SGGEcOg9VtbHt27H1bIviI3EJEqsOqiIM22xyL7_wJMEuhOHG2_3z9WF2TAuPl118qWm3ob8MNEd6CCSNN2CLrEPXv2QsXvC4IkVhluIVN0paujbNYWaHpTrPW-rD-0Z1CPAKlvM1cYA0WsyyZYdmqFGy5ym6HOS-WeQahKW_ZCkCTsNWSzTNewLihldV6mT1ieUu4sY-M58DEBzrfr7aJuhRdzrHuUgxAGuMa_M1WbP51RdNNfKUjcvTfdoF_pjaxWp68Lt6jHFQxM07jCncXMFmqCPFvKVgI0npgDbjHVy1QgTiMStLl7uDCntL-Yg6AjuNtscQHXMayCb3tPJkb0BB02v-EH0f5wLWUrQf1JDdamz9QcBaOmY9xS9OGIWkxoUnDU0v3QG6QTxKeU8=","tag":"-f6dGa5ZbcxJk3dHO5o4iQ=="}', reply_socket_id=None, reply_thread_id='a59c0b2d-cd2e-4fca-a847-1aef466ff162', reply_to_verkey=None, target=<ConnectionTarget(did='JK7aKyr22cQ4B1tpeiT1ti', endpoint='http://localhost:8030', label='AliceAgent', recipient_keys=['ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab'], routing_keys=[], sender_key='3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN')>)>
SmithSamuelM commented 5 years ago

Here is the log from Alice for presentation send request from faber to alice

2019-08-27 10:49:35,964 indy.crypto DEBUG unpack_message: >>> wallet_handle: 2, jwe: b'{"protected":"eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiJwV0k3amp5a29CblRacTdOTkl0ay1ZR0tyLTRvSFdobG5peHd3OTMycUxUbDY3VnVkSzEycWhvZGZTdUFnUlo1IiwiaGVhZGVyIjp7ImtpZCI6IkFTSDE5d05DcXVLQUo3ZEg0TEZ5ZEVydlBtRXozMlVTVnp2WExuMUhCOGFiIiwiaXYiOiJGZHM0VUdmSGYtQUF5allFazJYc09DUlk4WVY5MkJaUSIsInNlbmRlciI6IlZPQkpScXN3Q2hFSURHbWxpNXo5ejNIcmkxVGNid1NjREsxLWMxb2NMalhZQy1OWHlvaTlyd2xNTjhIdzhhaHAyTmRXdnA0amlvalhqbkM1enNmY25tOURGbmh3bEJCM1BZb01jZFpYZHNaRVItSkdiMXRlamlzRktHND0ifX1dfQ==","iv":"3FfkPDH1uU-yuiCX","ciphertext":"u6a-H_D7zvgVZ6KOg_aHDKRw_mga3-P3zLkNjv9l3ZlYGr_SUHstjrAlxMxyL2-g6NMaqTUpkGLNliWmaDlj-pWVppI4Hnw-Y91X3eoOU7lmZ08w59wDGmRLutsPGtDXXZLEGxQ-ng0pZv28_1LFtplhaNWzvPw22KViP2yc4-2bVboGGBqzMSltuuafsE7MQHy0Rh7rgqv7ZyE0gC5FtVK7Ko8Y3qcBHiYEkM-l7TLYYVv9G16GK_oZFWTMrNUzit0yzrM_08ywAfU6P_AYJ_XA30VMo4ugDdxIzmIn_wOhtDLHm1GeV9Lv86ln7G7dQmTuZZdmS19p8dPzOuGw52QA7Ob6CFjGKJLV-KQAqRnVp7zwGe6-CVwnloOlN5Ludb5QOTGUbm3XCB9-o1RJFgIXhVlb0UxODvfOlGZ9EoTaItDEmax716s7DMc5ltFCoDy11Du3fc7F0l5sR_insWqWvKUqWd8m4no0ftzr13Eqs5uv_MmRhiCkEMoCjhw9epjB78XR_uDF6HjnCS5obgr3-PNuHznbfGlAOic2BdT2BOVY8KDo5VQBPCrhTbTYci1IKh0B6HCeNLA6JHGOIBPLKxqOQQAzmp9s8jgchUQdKnZCnn3ETYQPsezV0Opg","tag":"-UzIhUvvSA1i3HG09cdDBA=="}'
2019-08-27 10:49:35,964 indy.libindy DEBUG do_call: >>> name: indy_unpack_message, args: (c_int(2), b'{"protected":"eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiJwV0k3amp5a29CblRacTdOTkl0ay1ZR0tyLTRvSFdobG5peHd3OTMycUxUbDY3VnVkSzEycWhvZGZTdUFnUlo1IiwiaGVhZGVyIjp7ImtpZCI6IkFTSDE5d05DcXVLQUo3ZEg0TEZ5ZEVydlBtRXozMlVTVnp2WExuMUhCOGFiIiwiaXYiOiJGZHM0VUdmSGYtQUF5allFazJYc09DUlk4WVY5MkJaUSIsInNlbmRlciI6IlZPQkpScXN3Q2hFSURHbWxpNXo5ejNIcmkxVGNid1NjREsxLWMxb2NMalhZQy1OWHlvaTlyd2xNTjhIdzhhaHAyTmRXdnA0amlvalhqbkM1enNmY25tOURGbmh3bEJCM1BZb01jZFpYZHNaRVItSkdiMXRlamlzRktHND0ifX1dfQ==","iv":"3FfkPDH1uU-yuiCX","ciphertext":"u6a-H_D7zvgVZ6KOg_aHDKRw_mga3-P3zLkNjv9l3ZlYGr_SUHstjrAlxMxyL2-g6NMaqTUpkGLNliWmaDlj-pWVppI4Hnw-Y91X3eoOU7lmZ08w59wDGmRLutsPGtDXXZLEGxQ-ng0pZv28_1LFtplhaNWzvPw22KViP2yc4-2bVboGGBqzMSltuuafsE7MQHy0Rh7rgqv7ZyE0gC5FtVK7Ko8Y3qcBHiYEkM-l7TLYYVv9G16GK_oZFWTMrNUzit0yzrM_08ywAfU6P_AYJ_XA30VMo4ugDdxIzmIn_wOhtDLHm1GeV9Lv86ln7G7dQmTuZZdmS19p8dPzOuGw52QA7Ob6CFjGKJLV-KQAqRnVp7zwGe6-CVwnloOlN5Ludb5QOTGUbm3XCB9-o1RJFgIXhVlb0UxODvfOlGZ9EoTaItDEmax716s7DMc5ltFCoDy11Du3fc7F0l5sR_insWqWvKUqWd8m4no0ftzr13Eqs5uv_MmRhiCkEMoCjhw9epjB78XR_uDF6HjnCS5obgr3-PNuHznbfGlAOic2BdT2BOVY8KDo5VQBPCrhTbTYci1IKh0B6HCeNLA6JHGOIBPLKxqOQQAzmp9s8jgchUQdKnZCnn3ETYQPsezV0Opg","tag":"-UzIhUvvSA1i3HG09cdDBA=="}', c_uint(1273), <CFunctionType object at 0x1090da870>)
2019-08-27 10:49:35,965 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:132 | CryptoCommand command received
2019-08-27 10:49:35,965 indy.libindy.native.indy.commands.crypto INFO   src/commands/crypto.rs:142 | UnpackMessage command received
2019-08-27 10:49:35,966 indy.libindy DEBUG do_call: Function indy_unpack_message returned err: 0
2019-08-27 10:49:35,966 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,969 indy.libindy DEBUG _indy_callback: >>> command_handle: 228, err , args: (b'{"message":"{\\"@type\\": \\"did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/credential-presentation/0.1/presentation-request\\", \\"@id\\": \\"de8e0fda-3b1f-4f90-97fc-be16c33add4d\\", \\"request\\": \\"{\\\\\\"name\\\\\\": \\\\\\"Proof of Name\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.0.0\\\\\\", \\\\\\"nonce\\\\\\": \\\\\\"296436271332003595653988294599033205840\\\\\\", \\\\\\"requested_attributes\\\\\\": {\\\\\\"656169aa-5baa-41d0-b0d9-6e13b3638aef\\\\\\": {\\\\\\"name\\\\\\": \\\\\\"Alice Jones\\\\\\", \\\\\\"restrictions\\\\\\": [{\\\\\\"cred_def_id\\\\\\": \\\\\\"3avoBCqDMFHFaKUHug9s8W:3:CL:15:default\\\\\\"}]}}, \\\\\\"requested_predicates\\\\\\": {}}\\"}","recipient_verkey":"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab","sender_verkey":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN"}',)
2019-08-27 10:49:35,969 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,969 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 228, err , args: (b'{"message":"{\\"@type\\": \\"did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/credential-presentation/0.1/presentation-request\\", \\"@id\\": \\"de8e0fda-3b1f-4f90-97fc-be16c33add4d\\", \\"request\\": \\"{\\\\\\"name\\\\\\": \\\\\\"Proof of Name\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.0.0\\\\\\", \\\\\\"nonce\\\\\\": \\\\\\"296436271332003595653988294599033205840\\\\\\", \\\\\\"requested_attributes\\\\\\": {\\\\\\"656169aa-5baa-41d0-b0d9-6e13b3638aef\\\\\\": {\\\\\\"name\\\\\\": \\\\\\"Alice Jones\\\\\\", \\\\\\"restrictions\\\\\\": [{\\\\\\"cred_def_id\\\\\\": \\\\\\"3avoBCqDMFHFaKUHug9s8W:3:CL:15:default\\\\\\"}]}}, \\\\\\"requested_predicates\\\\\\": {}}\\"}","recipient_verkey":"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab","sender_verkey":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN"}',)
2019-08-27 10:49:35,969 indy.libindy DEBUG _indy_loop_callback: Function returned b'{"message":"{\\"@type\\": \\"did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/credential-presentation/0.1/presentation-request\\", \\"@id\\": \\"de8e0fda-3b1f-4f90-97fc-be16c33add4d\\", \\"request\\": \\"{\\\\\\"name\\\\\\": \\\\\\"Proof of Name\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.0.0\\\\\\", \\\\\\"nonce\\\\\\": \\\\\\"296436271332003595653988294599033205840\\\\\\", \\\\\\"requested_attributes\\\\\\": {\\\\\\"656169aa-5baa-41d0-b0d9-6e13b3638aef\\\\\\": {\\\\\\"name\\\\\\": \\\\\\"Alice Jones\\\\\\", \\\\\\"restrictions\\\\\\": [{\\\\\\"cred_def_id\\\\\\": \\\\\\"3avoBCqDMFHFaKUHug9s8W:3:CL:15:default\\\\\\"}]}}, \\\\\\"requested_predicates\\\\\\": {}}\\"}","recipient_verkey":"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab","sender_verkey":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN"}'
2019-08-27 10:49:35,969 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,970 indy.crypto DEBUG unpack_message: <<< res: b'{"message":"{\\"@type\\": \\"did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/credential-presentation/0.1/presentation-request\\", \\"@id\\": \\"de8e0fda-3b1f-4f90-97fc-be16c33add4d\\", \\"request\\": \\"{\\\\\\"name\\\\\\": \\\\\\"Proof of Name\\\\\\", \\\\\\"version\\\\\\": \\\\\\"1.0.0\\\\\\", \\\\\\"nonce\\\\\\": \\\\\\"296436271332003595653988294599033205840\\\\\\", \\\\\\"requested_attributes\\\\\\": {\\\\\\"656169aa-5baa-41d0-b0d9-6e13b3638aef\\\\\\": {\\\\\\"name\\\\\\": \\\\\\"Alice Jones\\\\\\", \\\\\\"restrictions\\\\\\": [{\\\\\\"cred_def_id\\\\\\": \\\\\\"3avoBCqDMFHFaKUHug9s8W:3:CL:15:default\\\\\\"}]}}, \\\\\\"requested_predicates\\\\\\": {}}\\"}","recipient_verkey":"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab","sender_verkey":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN"}'
2019-08-27 10:49:35,970 aries_cloudagent.messaging.serializer DEBUG Expanded message: {'@type': 'did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/credential-presentation/0.1/presentation-request', '@id': 'de8e0fda-3b1f-4f90-97fc-be16c33add4d', 'request': '{"name": "Proof of Name", "version": "1.0.0", "nonce": "296436271332003595653988294599033205840", "requested_attributes": {"656169aa-5baa-41d0-b0d9-6e13b3638aef": {"name": "Alice Jones", "restrictions": [{"cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"}]}}, "requested_predicates": {}}'}
2019-08-27 10:49:35,970 indy.non_secrets DEBUG open_wallet_search: >>> wallet_handle: 2, type_: 'did_key', query_json: '{"key": "3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN"}', options_json: '{"retrieveRecords": true, "retrieveTotalCount": true, "retrieveType": true, "retrieveValue": true, "retrieveTags": true}'
2019-08-27 10:49:35,970 indy.libindy DEBUG do_call: >>> name: indy_open_wallet_search, args: (c_int(2), c_char_p(4446726624), c_char_p(4447594256), c_char_p(4447569232), <CFunctionType object at 0x1090121f0>)
2019-08-27 10:49:35,970 indy.libindy DEBUG do_call: Function indy_open_wallet_search returned err: 0
2019-08-27 10:49:35,970 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:49:35,970 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,971 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:105 | OpenSearch command received
2019-08-27 10:49:35,971 indy.libindy DEBUG _indy_callback: >>> command_handle: 229, err , args: (58,)
2019-08-27 10:49:35,971 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,971 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 229, err , args: (58,)
2019-08-27 10:49:35,972 indy.libindy DEBUG _indy_loop_callback: Function returned 58
2019-08-27 10:49:35,972 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,972 indy.non_secrets DEBUG open_wallet_search: <<< res: 58
2019-08-27 10:49:35,972 indy.non_secrets DEBUG fetch_wallet_search_next_records: >>> wallet_handle: 2, wallet_search_handle: 58, count: 100
2019-08-27 10:49:35,972 indy.libindy DEBUG do_call: >>> name: indy_fetch_wallet_search_next_records, args: (c_int(2), c_int(58), c_uint(100), <CFunctionType object at 0x109012390>)
2019-08-27 10:49:35,972 indy.libindy DEBUG do_call: Function indy_fetch_wallet_search_next_records returned err: 0
2019-08-27 10:49:35,972 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,972 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:49:35,972 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:109 | SearchNextRecords command received
2019-08-27 10:49:35,973 indy.libindy DEBUG _indy_callback: >>> command_handle: 230, err , args: (b'{"totalCount":1,"records":[{"type":"did_key","id":"abc4ad279df64f2bb1f68193f9b4f96f","value":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","tags":{"key":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","did":"5jpjNPYVE1LpH6JRQgx5Qd"}}]}',)
2019-08-27 10:49:35,973 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,973 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 230, err , args: (b'{"totalCount":1,"records":[{"type":"did_key","id":"abc4ad279df64f2bb1f68193f9b4f96f","value":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","tags":{"key":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","did":"5jpjNPYVE1LpH6JRQgx5Qd"}}]}',)
2019-08-27 10:49:35,973 indy.libindy DEBUG _indy_loop_callback: Function returned b'{"totalCount":1,"records":[{"type":"did_key","id":"abc4ad279df64f2bb1f68193f9b4f96f","value":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","tags":{"key":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","did":"5jpjNPYVE1LpH6JRQgx5Qd"}}]}'
2019-08-27 10:49:35,973 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,973 indy.non_secrets DEBUG fetch_wallet_search_next_records: <<< res: '{"totalCount":1,"records":[{"type":"did_key","id":"abc4ad279df64f2bb1f68193f9b4f96f","value":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","tags":{"key":"3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN","did":"5jpjNPYVE1LpH6JRQgx5Qd"}}]}'
2019-08-27 10:49:35,973 indy.non_secrets DEBUG fetch_wallet_search_next_records: >>> wallet_handle: 2, wallet_search_handle: 58, count: 100
2019-08-27 10:49:35,973 indy.libindy DEBUG do_call: >>> name: indy_fetch_wallet_search_next_records, args: (c_int(2), c_int(58), c_uint(100), <CFunctionType object at 0x109012390>)
2019-08-27 10:49:35,973 indy.libindy DEBUG do_call: Function indy_fetch_wallet_search_next_records returned err: 0
2019-08-27 10:49:35,973 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:49:35,973 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,974 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:109 | SearchNextRecords command received
2019-08-27 10:49:35,974 indy.libindy DEBUG _indy_callback: >>> command_handle: 231, err , args: (b'{"totalCount":1,"records":null}',)
2019-08-27 10:49:35,974 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,974 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 231, err , args: (b'{"totalCount":1,"records":null}',)
2019-08-27 10:49:35,974 indy.libindy DEBUG _indy_loop_callback: Function returned b'{"totalCount":1,"records":null}'
2019-08-27 10:49:35,974 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,974 indy.non_secrets DEBUG fetch_wallet_search_next_records: <<< res: '{"totalCount":1,"records":null}'
2019-08-27 10:49:35,974 indy.non_secrets DEBUG close_wallet_search: >>> wallet_search_handle: 58
2019-08-27 10:49:35,974 indy.libindy DEBUG do_call: >>> name: indy_close_wallet_search, args: (c_int(58), <CFunctionType object at 0x109012600>)
2019-08-27 10:49:35,974 indy.libindy DEBUG do_call: Function indy_close_wallet_search returned err: 0
2019-08-27 10:49:35,974 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,974 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:49:35,975 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:113 | CloseSearch command received
2019-08-27 10:49:35,975 indy.libindy DEBUG _indy_callback: >>> command_handle: 232, err , args: ()
2019-08-27 10:49:35,975 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,975 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 232, err , args: ()
2019-08-27 10:49:35,975 indy.libindy DEBUG _indy_loop_callback: Function returned None
2019-08-27 10:49:35,975 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,975 indy.non_secrets DEBUG close_wallet_search: <<< res: None
2019-08-27 10:49:35,975 indy.did DEBUG list_my_dids_with_meta: >>> wallet_handle: 2
2019-08-27 10:49:35,975 indy.libindy DEBUG do_call: >>> name: indy_list_my_dids_with_meta, args: (c_int(2), <CFunctionType object at 0x1064c6530>)
2019-08-27 10:49:35,975 indy.libindy DEBUG do_call: Function indy_list_my_dids_with_meta returned err: 0
2019-08-27 10:49:35,975 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:144 | DidCommand command received
2019-08-27 10:49:35,975 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,976 indy.libindy.native.indy.commands.did INFO  src/commands/did.rs:145 | ListMyDidsWithMeta command received
2019-08-27 10:49:35,976 indy.libindy.native.indy.commands.did DEBUG     src/commands/did.rs:291 | list_my_dids_with_meta >>> wallet_handle: WalletHandle(2)
2019-08-27 10:49:35,977 indy.libindy.native.indy.commands.did DEBUG     src/commands/did.rs:322 | list_my_dids_with_meta <<< res: "[{\"did\":\"JK7aKyr22cQ4B1tpeiT1ti\",\"verkey\":\"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab\",\"tempVerkey\":null,\"metadata\":null},{\"did\":\"KfoDwEpcJoNCdb6Akeeb9w\",\"verkey\":\"BBAM5UQdhfFvSdihv4SbEcV3zAyLZ2dEs3WwBnh2cHw2\",\"tempVerkey\":null,\"metadata\":\"{\\\"public\\\": true}\"},{\"did\":\"GXCBRRQHZerQBBcRSGXvRf\",\"verkey\":\"9TdsKSP5x7PKyMmQu3z4qM6yLm9QZPvqD6TJ2FJiZiS5\",\"tempVerkey\":null,\"metadata\":null}]"
2019-08-27 10:49:35,977 indy.libindy DEBUG _indy_callback: >>> command_handle: 233, err , args: (b'[{"did":"JK7aKyr22cQ4B1tpeiT1ti","verkey":"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab","tempVerkey":null,"metadata":null},{"did":"KfoDwEpcJoNCdb6Akeeb9w","verkey":"BBAM5UQdhfFvSdihv4SbEcV3zAyLZ2dEs3WwBnh2cHw2","tempVerkey":null,"metadata":"{\\"public\\": true}"},{"did":"GXCBRRQHZerQBBcRSGXvRf","verkey":"9TdsKSP5x7PKyMmQu3z4qM6yLm9QZPvqD6TJ2FJiZiS5","tempVerkey":null,"metadata":null}]',)
2019-08-27 10:49:35,977 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,977 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 233, err , args: (b'[{"did":"JK7aKyr22cQ4B1tpeiT1ti","verkey":"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab","tempVerkey":null,"metadata":null},{"did":"KfoDwEpcJoNCdb6Akeeb9w","verkey":"BBAM5UQdhfFvSdihv4SbEcV3zAyLZ2dEs3WwBnh2cHw2","tempVerkey":null,"metadata":"{\\"public\\": true}"},{"did":"GXCBRRQHZerQBBcRSGXvRf","verkey":"9TdsKSP5x7PKyMmQu3z4qM6yLm9QZPvqD6TJ2FJiZiS5","tempVerkey":null,"metadata":null}]',)
2019-08-27 10:49:35,977 indy.libindy DEBUG _indy_loop_callback: Function returned b'[{"did":"JK7aKyr22cQ4B1tpeiT1ti","verkey":"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab","tempVerkey":null,"metadata":null},{"did":"KfoDwEpcJoNCdb6Akeeb9w","verkey":"BBAM5UQdhfFvSdihv4SbEcV3zAyLZ2dEs3WwBnh2cHw2","tempVerkey":null,"metadata":"{\\"public\\": true}"},{"did":"GXCBRRQHZerQBBcRSGXvRf","verkey":"9TdsKSP5x7PKyMmQu3z4qM6yLm9QZPvqD6TJ2FJiZiS5","tempVerkey":null,"metadata":null}]'
2019-08-27 10:49:35,977 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,977 indy.did DEBUG list_my_dids_with_meta: <<< res: '[{"did":"JK7aKyr22cQ4B1tpeiT1ti","verkey":"ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab","tempVerkey":null,"metadata":null},{"did":"KfoDwEpcJoNCdb6Akeeb9w","verkey":"BBAM5UQdhfFvSdihv4SbEcV3zAyLZ2dEs3WwBnh2cHw2","tempVerkey":null,"metadata":"{\\"public\\": true}"},{"did":"GXCBRRQHZerQBBcRSGXvRf","verkey":"9TdsKSP5x7PKyMmQu3z4qM6yLm9QZPvqD6TJ2FJiZiS5","tempVerkey":null,"metadata":null}]'
2019-08-27 10:49:35,977 indy.non_secrets DEBUG open_wallet_search: >>> wallet_handle: 2, type_: 'connection', query_json: '{"their_did": "5jpjNPYVE1LpH6JRQgx5Qd", "my_did": "JK7aKyr22cQ4B1tpeiT1ti"}', options_json: '{"retrieveRecords": true, "retrieveTotalCount": true, "retrieveType": true, "retrieveValue": true, "retrieveTags": true}'
2019-08-27 10:49:35,977 indy.libindy DEBUG do_call: >>> name: indy_open_wallet_search, args: (c_int(2), c_char_p(4446726624), c_char_p(4447585904), c_char_p(4447569232), <CFunctionType object at 0x1090121f0>)
2019-08-27 10:49:35,977 indy.libindy DEBUG do_call: Function indy_open_wallet_search returned err: 0
2019-08-27 10:49:35,978 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,978 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:49:35,978 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:105 | OpenSearch command received
2019-08-27 10:49:35,978 indy.libindy DEBUG _indy_callback: >>> command_handle: 234, err , args: (59,)
2019-08-27 10:49:35,978 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,978 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 234, err , args: (59,)
2019-08-27 10:49:35,978 indy.libindy DEBUG _indy_loop_callback: Function returned 59
2019-08-27 10:49:35,979 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,979 indy.non_secrets DEBUG open_wallet_search: <<< res: 59
2019-08-27 10:49:35,979 indy.non_secrets DEBUG fetch_wallet_search_next_records: >>> wallet_handle: 2, wallet_search_handle: 59, count: 100
2019-08-27 10:49:35,979 indy.libindy DEBUG do_call: >>> name: indy_fetch_wallet_search_next_records, args: (c_int(2), c_int(59), c_uint(100), <CFunctionType object at 0x109012390>)
2019-08-27 10:49:35,979 indy.libindy DEBUG do_call: Function indy_fetch_wallet_search_next_records returned err: 0
2019-08-27 10:49:35,979 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,979 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:49:35,979 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:109 | SearchNextRecords command received
2019-08-27 10:49:35,980 indy.libindy DEBUG _indy_callback: >>> command_handle: 235, err , args: (b'{"totalCount":1,"records":[{"type":"connection","id":"4193344d-c71b-4628-b582-2531feb1770e","value":"{\\"state\\": \\"active\\", \\"my_did\\": \\"JK7aKyr22cQ4B1tpeiT1ti\\", \\"their_did\\": \\"5jpjNPYVE1LpH6JRQgx5Qd\\", \\"initiator\\": \\"external\\", \\"invitation_key\\": \\"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc\\", \\"request_id\\": \\"1f55bf98-f3fc-4613-82e3-6cf159598d24\\", \\"routing_state\\": \\"none\\", \\"accept\\": \\"auto\\", \\"invitation_mode\\": \\"once\\", \\"created_at\\": \\"2019-08-26 20:40:09.616234Z\\", \\"updated_at\\": \\"2019-08-26 20:40:09.955980Z\\", \\"error_msg\\": null, \\"their_label\\": \\"FaberAgent\\"}","tags":{"accept":"auto","their_did":"5jpjNPYVE1LpH6JRQgx5Qd","my_did":"JK7aKyr22cQ4B1tpeiT1ti","request_id":"1f55bf98-f3fc-4613-82e3-6cf159598d24","state":"active","invitation_mode":"once","routing_state":"none","invitation_key":"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc","initiator":"external"}}]}',)
2019-08-27 10:49:35,980 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,980 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 235, err , args: (b'{"totalCount":1,"records":[{"type":"connection","id":"4193344d-c71b-4628-b582-2531feb1770e","value":"{\\"state\\": \\"active\\", \\"my_did\\": \\"JK7aKyr22cQ4B1tpeiT1ti\\", \\"their_did\\": \\"5jpjNPYVE1LpH6JRQgx5Qd\\", \\"initiator\\": \\"external\\", \\"invitation_key\\": \\"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc\\", \\"request_id\\": \\"1f55bf98-f3fc-4613-82e3-6cf159598d24\\", \\"routing_state\\": \\"none\\", \\"accept\\": \\"auto\\", \\"invitation_mode\\": \\"once\\", \\"created_at\\": \\"2019-08-26 20:40:09.616234Z\\", \\"updated_at\\": \\"2019-08-26 20:40:09.955980Z\\", \\"error_msg\\": null, \\"their_label\\": \\"FaberAgent\\"}","tags":{"accept":"auto","their_did":"5jpjNPYVE1LpH6JRQgx5Qd","my_did":"JK7aKyr22cQ4B1tpeiT1ti","request_id":"1f55bf98-f3fc-4613-82e3-6cf159598d24","state":"active","invitation_mode":"once","routing_state":"none","invitation_key":"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc","initiator":"external"}}]}',)
2019-08-27 10:49:35,980 indy.libindy DEBUG _indy_loop_callback: Function returned b'{"totalCount":1,"records":[{"type":"connection","id":"4193344d-c71b-4628-b582-2531feb1770e","value":"{\\"state\\": \\"active\\", \\"my_did\\": \\"JK7aKyr22cQ4B1tpeiT1ti\\", \\"their_did\\": \\"5jpjNPYVE1LpH6JRQgx5Qd\\", \\"initiator\\": \\"external\\", \\"invitation_key\\": \\"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc\\", \\"request_id\\": \\"1f55bf98-f3fc-4613-82e3-6cf159598d24\\", \\"routing_state\\": \\"none\\", \\"accept\\": \\"auto\\", \\"invitation_mode\\": \\"once\\", \\"created_at\\": \\"2019-08-26 20:40:09.616234Z\\", \\"updated_at\\": \\"2019-08-26 20:40:09.955980Z\\", \\"error_msg\\": null, \\"their_label\\": \\"FaberAgent\\"}","tags":{"accept":"auto","their_did":"5jpjNPYVE1LpH6JRQgx5Qd","my_did":"JK7aKyr22cQ4B1tpeiT1ti","request_id":"1f55bf98-f3fc-4613-82e3-6cf159598d24","state":"active","invitation_mode":"once","routing_state":"none","invitation_key":"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc","initiator":"external"}}]}'
2019-08-27 10:49:35,980 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,980 indy.non_secrets DEBUG fetch_wallet_search_next_records: <<< res: '{"totalCount":1,"records":[{"type":"connection","id":"4193344d-c71b-4628-b582-2531feb1770e","value":"{\\"state\\": \\"active\\", \\"my_did\\": \\"JK7aKyr22cQ4B1tpeiT1ti\\", \\"their_did\\": \\"5jpjNPYVE1LpH6JRQgx5Qd\\", \\"initiator\\": \\"external\\", \\"invitation_key\\": \\"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc\\", \\"request_id\\": \\"1f55bf98-f3fc-4613-82e3-6cf159598d24\\", \\"routing_state\\": \\"none\\", \\"accept\\": \\"auto\\", \\"invitation_mode\\": \\"once\\", \\"created_at\\": \\"2019-08-26 20:40:09.616234Z\\", \\"updated_at\\": \\"2019-08-26 20:40:09.955980Z\\", \\"error_msg\\": null, \\"their_label\\": \\"FaberAgent\\"}","tags":{"accept":"auto","their_did":"5jpjNPYVE1LpH6JRQgx5Qd","my_did":"JK7aKyr22cQ4B1tpeiT1ti","request_id":"1f55bf98-f3fc-4613-82e3-6cf159598d24","state":"active","invitation_mode":"once","routing_state":"none","invitation_key":"5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc","initiator":"external"}}]}'
2019-08-27 10:49:35,980 indy.non_secrets DEBUG fetch_wallet_search_next_records: >>> wallet_handle: 2, wallet_search_handle: 59, count: 100
2019-08-27 10:49:35,980 indy.libindy DEBUG do_call: >>> name: indy_fetch_wallet_search_next_records, args: (c_int(2), c_int(59), c_uint(100), <CFunctionType object at 0x109012390>)
2019-08-27 10:49:35,981 indy.libindy DEBUG do_call: Function indy_fetch_wallet_search_next_records returned err: 0
2019-08-27 10:49:35,981 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,981 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:49:35,981 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:109 | SearchNextRecords command received
2019-08-27 10:49:35,981 indy.libindy DEBUG _indy_callback: >>> command_handle: 236, err , args: (b'{"totalCount":1,"records":null}',)
2019-08-27 10:49:35,981 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,981 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 236, err , args: (b'{"totalCount":1,"records":null}',)
2019-08-27 10:49:35,981 indy.libindy DEBUG _indy_loop_callback: Function returned b'{"totalCount":1,"records":null}'
2019-08-27 10:49:35,981 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,981 indy.non_secrets DEBUG fetch_wallet_search_next_records: <<< res: '{"totalCount":1,"records":null}'
2019-08-27 10:49:35,981 indy.non_secrets DEBUG close_wallet_search: >>> wallet_search_handle: 59
2019-08-27 10:49:35,981 indy.libindy DEBUG do_call: >>> name: indy_close_wallet_search, args: (c_int(59), <CFunctionType object at 0x109012600>)
2019-08-27 10:49:35,981 indy.libindy DEBUG do_call: Function indy_close_wallet_search returned err: 0
2019-08-27 10:49:35,982 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,982 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:49:35,982 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:113 | CloseSearch command received
2019-08-27 10:49:35,982 indy.libindy DEBUG _indy_callback: >>> command_handle: 237, err , args: ()
2019-08-27 10:49:35,982 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,982 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 237, err , args: ()
2019-08-27 10:49:35,982 indy.libindy DEBUG _indy_loop_callback: Function returned None
2019-08-27 10:49:35,982 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,982 indy.non_secrets DEBUG close_wallet_search: <<< res: None
2019-08-27 10:49:35,983 aries_cloudagent.messaging.base_handler DEBUG PresentationRequestHandler called with context <RequestContext(_injector=<Injector>, _scope_name='application', _scopes=[], _connection_ready=True, _connection_record=<ConnectionRecord(_id='4193344d-c71b-4628-b582-2531feb1770e', _last_state='active', state='active', created_at='2019-08-26 20:40:09.616234Z', updated_at='2019-08-26 20:40:09.955980Z', my_did='JK7aKyr22cQ4B1tpeiT1ti', their_did='5jpjNPYVE1LpH6JRQgx5Qd', their_label='FaberAgent', their_role=None, initiator='external', invitation_key='5gHfSQJmmc6kJgfYJq49uN4Rn4ebMrpEva1tEDWD2Mwc', request_id='1f55bf98-f3fc-4613-82e3-6cf159598d24', error_msg=None, inbound_connection_id=None, routing_state='none', accept='auto', invitation_mode='once')>, _message=<PresentationRequest(_message_id='de8e0fda-3b1f-4f90-97fc-be16c33add4d', _message_new_id=False, _message_decorators=<DecoratorSet{}>, request='{"name": "Proof of Name", "version": "1.0.0", "nonce": "296436271332003595653988294599033205840", "requested_attributes": {"656169aa-5baa-41d0-b0d9-6e13b3638aef": {"name": "Alice Jones", "restrictions": [{"cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"}]}}, "requested_predicates": {}}', comment=None)>, _message_delivery=<MessageDelivery(_connection_id='4193344d-c71b-4628-b582-2531feb1770e', _direct_response=False, _direct_response_requested=None, _in_time='2019-08-27 16:49:35.964722Z', _raw_message='{"@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/credential-presentation/0.1/presentation-request", "@id": "de8e0fda-3b1f-4f90-97fc-be16c33add4d", "request": "{\\"name\\": \\"Proof of Name\\", \\"version\\": \\"1.0.0\\", \\"nonce\\": \\"296436271332003595653988294599033205840\\", \\"requested_attributes\\": {\\"656169aa-5baa-41d0-b0d9-6e13b3638aef\\": {\\"name\\": \\"Alice Jones\\", \\"restrictions\\": [{\\"cred_def_id\\": \\"3avoBCqDMFHFaKUHug9s8W:3:CL:15:default\\"}]}}, \\"requested_predicates\\": {}}"}', _recipient_verkey='ASH19wNCquKAJ7dH4LFydErvPmEz32USVzvXLn1HB8ab', _recipient_did='JK7aKyr22cQ4B1tpeiT1ti', _recipient_did_public=None, _sender_did='5jpjNPYVE1LpH6JRQgx5Qd', _sender_verkey='3anhJeqTK7RAaxaStWwZMyVLyxdPiCN79euwgWrsVYXN', _socket_id='6a3b0c30-1949-43a3-bc89-e1691f275e75', _thread_id='de8e0fda-3b1f-4f90-97fc-be16c33add4d', _transport_type='http')>)>
2019-08-27 10:49:35,983 aries_cloudagent.messaging.base_handler INFO Received presentation request: {"name": "Proof of Name", "version": "1.0.0", "nonce": "296436271332003595653988294599033205840", "requested_attributes": {"656169aa-5baa-41d0-b0d9-6e13b3638aef": {"name": "Alice Jones", "restrictions": [{"cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"}]}}, "requested_predicates": {}}
2019-08-27 10:49:35,984 indy.non_secrets DEBUG add_wallet_record: >>> wallet_handle: 2, type_: 'presentation_exchange', id: 'b99c2c8a-408e-4e8c-b933-6c388bb0384b', value: '{"state": "request_received", "connection_id": "4193344d-c71b-4628-b582-2531feb1770e", "thread_id": "de8e0fda-3b1f-4f90-97fc-be16c33add4d", "initiator": "external", "created_at": "2019-08-27 16:49:35.984021Z", "updated_at": "2019-08-27 16:49:35.984021Z", "presentation_request": {"name": "Proof of Name", "version": "1.0.0", "nonce": "296436271332003595653988294599033205840", "requested_attributes": {"656169aa-5baa-41d0-b0d9-6e13b3638aef": {"name": "Alice Jones", "restrictions": [{"cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"}]}}, "requested_predicates": {}}}', tags_json: '{"state": "request_received", "connection_id": "4193344d-c71b-4628-b582-2531feb1770e", "thread_id": "de8e0fda-3b1f-4f90-97fc-be16c33add4d", "initiator": "external"}'
2019-08-27 10:49:35,984 indy.libindy DEBUG do_call: >>> name: indy_add_wallet_record, args: (c_int(2), c_char_p(4447550992), c_char_p(4447611712), c_char_p(140433634191728), c_char_p(4447590304), <CFunctionType object at 0x109012ae0>)
2019-08-27 10:49:35,984 indy.libindy DEBUG do_call: Function indy_add_wallet_record returned err: 0
2019-08-27 10:49:35,984 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,985 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:156 | NonSecretCommand command received
2019-08-27 10:49:35,985 indy.libindy.native.non_secrets_command_executor INFO   src/commands/non_secrets.rs:77 | AddRecord command received
2019-08-27 10:49:35,988 indy.libindy DEBUG _indy_callback: >>> command_handle: 238, err , args: ()
2019-08-27 10:49:35,988 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,988 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 238, err , args: ()
2019-08-27 10:49:35,988 indy.libindy DEBUG _indy_loop_callback: Function returned None
2019-08-27 10:49:35,988 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,988 indy.non_secrets DEBUG add_wallet_record: <<< res: None
2019-08-27 10:49:35,989 indy.anoncreds DEBUG prover_search_credentials_for_proof_req: >>> wallet_handle: 2, proof_request_json: '{"name": "Proof of Name", "version": "1.0.0", "nonce": "296436271332003595653988294599033205840", "requested_attributes": {"656169aa-5baa-41d0-b0d9-6e13b3638aef": {"name": "Alice Jones", "restrictions": [{"cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"}]}}, "requested_predicates": {}}', extra_query_json: '{}'
2019-08-27 10:49:35,989 indy.libindy DEBUG do_call: >>> name: indy_prover_search_credentials_for_proof_req, args: (c_int(2), c_char_p(4446263008), c_char_p(4446726288), <CFunctionType object at 0x10918d390>)
2019-08-27 10:49:35,990 indy.libindy DEBUG do_call: Function indy_prover_search_credentials_for_proof_req returned err: 0
2019-08-27 10:49:35,990 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,990 aries_cloudagent.transport.outbound.queue.basic DEBUG Enqueuing message: ('presentations', {'created_at': '2019-08-27 16:49:35.984021Z', 'state': 'request_received', 'presentation_exchange_id': 'b99c2c8a-408e-4e8c-b933-6c388bb0384b', 'updated_at': '2019-08-27 16:49:35.984021Z', 'presentation_request': {'name': 'Proof of Name', 'version': '1.0.0', 'nonce': '296436271332003595653988294599033205840', 'requested_attributes': {'656169aa-5baa-41d0-b0d9-6e13b3638aef': {'name': 'Alice Jones', 'restrictions': [{'cred_def_id': '3avoBCqDMFHFaKUHug9s8W:3:CL:15:default'}]}}, 'requested_predicates': {}}, 'thread_id': 'de8e0fda-3b1f-4f90-97fc-be16c33add4d', 'connection_id': '4193344d-c71b-4628-b582-2531feb1770e', 'initiator': 'external'})
2019-08-27 10:49:35,990 aries_cloudagent.transport.outbound.queue.basic DEBUG Dequeuing message: ('presentations', {'created_at': '2019-08-27 16:49:35.984021Z', 'state': 'request_received', 'presentation_exchange_id': 'b99c2c8a-408e-4e8c-b933-6c388bb0384b', 'updated_at': '2019-08-27 16:49:35.984021Z', 'presentation_request': {'name': 'Proof of Name', 'version': '1.0.0', 'nonce': '296436271332003595653988294599033205840', 'requested_attributes': {'656169aa-5baa-41d0-b0d9-6e13b3638aef': {'name': 'Alice Jones', 'restrictions': [{'cred_def_id': '3avoBCqDMFHFaKUHug9s8W:3:CL:15:default'}]}}, 'requested_predicates': {}}, 'thread_id': 'de8e0fda-3b1f-4f90-97fc-be16c33add4d', 'connection_id': '4193344d-c71b-4628-b582-2531feb1770e', 'initiator': 'external'})
2019-08-27 10:49:35,990 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:124 | AnoncredsCommand command received
2019-08-27 10:49:35,990 indy.libindy.native.anoncreds_command_executor INFO     src/commands/anoncreds/mod.rs:54 | Prover command received
2019-08-27 10:49:35,990 indy.libindy.native.prover_command_executor INFO    src/commands/anoncreds/prover.rs:227 | SearchCredentialsForProofReq command received
2019-08-27 10:49:35,990 indy.libindy.native.indy.commands.anoncreds.prover DEBUG    src/commands/anoncreds/prover.rs:567 | search_credentials_for_proof_req >>> wallet_handle: WalletHandle(2), proof_request: ProofRequest { nonce: BigNumber { openssl_bn: 296436271332003595653988294599033205840 }, name: "Proof of Name", version: "1.0.0", requested_attributes: {"656169aa-5baa-41d0-b0d9-6e13b3638aef": AttributeInfo { name: "Alice Jones", restrictions: Some(Array([Object({"cred_def_id": String("3avoBCqDMFHFaKUHug9s8W:3:CL:15:default")})])), non_revoked: None }}, requested_predicates: {}, non_revoked: None }, extra_query: Some({})
2019-08-27 10:49:35,991 indy.libindy.native.indy.commands.anoncreds.prover DEBUG    src/commands/anoncreds/prover.rs:604 | search_credentials_for_proof_req <<< credentials_for_proof_request_json: 60
2019-08-27 10:49:35,991 indy.libindy DEBUG _indy_callback: >>> command_handle: 239, err , args: (60,)
2019-08-27 10:49:35,991 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,991 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 239, err , args: (60,)
2019-08-27 10:49:35,991 indy.libindy DEBUG _indy_loop_callback: Function returned 60
2019-08-27 10:49:35,991 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,992 indy.anoncreds DEBUG prover_search_credentials_for_proof_req: <<< res: 60
2019-08-27 10:49:35,992 indy.anoncreds DEBUG prover_fetch_credentials_for_proof_req: >>> search_handle: 60, item_referent: '656169aa-5baa-41d0-b0d9-6e13b3638aef', count: 2
2019-08-27 10:49:35,992 indy.libindy DEBUG do_call: >>> name: indy_prover_fetch_credentials_for_proof_req, args: (c_int(60), c_char_p(4447577104), c_uint(2), <CFunctionType object at 0x10918d2c0>)
2019-08-27 10:49:35,992 indy.libindy DEBUG do_call: Function indy_prover_fetch_credentials_for_proof_req returned err: 0
2019-08-27 10:49:35,992 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,992 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:124 | AnoncredsCommand command received
2019-08-27 10:49:35,992 indy.libindy.native.anoncreds_command_executor INFO     src/commands/anoncreds/mod.rs:54 | Prover command received
2019-08-27 10:49:35,992 indy.libindy.native.prover_command_executor INFO    src/commands/anoncreds/prover.rs:231 | FetchCredentialForProofReq command received
2019-08-27 10:49:35,992 indy.libindy DEBUG _indy_callback: >>> command_handle: 240, err , args: (b'[]',)
2019-08-27 10:49:35,992 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,992 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 240, err , args: (b'[]',)
2019-08-27 10:49:35,992 indy.libindy DEBUG _indy_loop_callback: Function returned b'[]'
2019-08-27 10:49:35,992 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,992 indy.anoncreds DEBUG prover_fetch_credentials_for_proof_req: <<< res: '[]'
2019-08-27 10:49:35,993 indy.anoncreds DEBUG prover_close_credentials_search_for_proof_req: >>> search_handle: 60
2019-08-27 10:49:35,993 indy.libindy DEBUG do_call: >>> name: indy_prover_close_credentials_search_for_proof_req, args: (c_int(60), <CFunctionType object at 0x10918d600>)
2019-08-27 10:49:35,993 indy.libindy DEBUG do_call: Function indy_prover_close_credentials_search_for_proof_req returned err: 0
2019-08-27 10:49:35,993 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 10:49:35,993 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:124 | AnoncredsCommand command received
2019-08-27 10:49:35,993 indy.libindy.native.anoncreds_command_executor INFO     src/commands/anoncreds/mod.rs:54 | Prover command received
2019-08-27 10:49:35,993 indy.libindy.native.prover_command_executor INFO    src/commands/anoncreds/prover.rs:235 | CloseCredentialsSearchForProofReq command received
2019-08-27 10:49:35,993 indy.libindy DEBUG _indy_callback: >>> command_handle: 241, err , args: ()
2019-08-27 10:49:35,993 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 10:49:35,993 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 241, err , args: ()
2019-08-27 10:49:35,993 indy.libindy DEBUG _indy_loop_callback: Function returned None
2019-08-27 10:49:35,993 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 10:49:35,993 indy.anoncreds DEBUG prover_close_credentials_search_for_proof_req: <<< res: None
2019-08-27 10:49:35,993 aries_cloudagent.messaging.base_handler WARNING Could not automatically construct presentation for presentation request Proof of Name:1.0.0 because referent 656169aa-5baa-41d0-b0d9-6e13b3638aef did not produce exactly one credential result. 0 credentials were returned from the wallet.
2019-08-27 10:49:35,994 aiohttp.access INFO 127.0.0.1 [27/Aug/2019:16:49:35 +0000] "POST / HTTP/1.1" 200 149 "-" "Python/3.7 aiohttp/3.5.4"
nrempel commented 5 years ago

Sam, I think "name": "Alice Jones" should be "name": "name" since the proof request is referring to the credential attribute name, not the value.

Can you try with that change?

I think that is the case, since in the log for Alice, you can see this message:

2019-08-27 10:49:35,993 aries_cloudagent.messaging.base_handler WARNING Could not automatically construct presentation for presentation request Proof of Name:1.0.0 because referent 656169aa-5baa-41d0-b0d9-6e13b3638aef did not produce exactly one credential result. 0 credentials were returned from the wallet.

SmithSamuelM commented 5 years ago

{
"connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7", "version": "1.0.0", "name": "Proof of Name", "requested_attributes": [ { "name": "name", "restrictions": [ {"cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"} ] } ], "requested_predicates": [

] }

2019-08-27 10:53:21,894 aries_cloudagent.messaging.base_handler WARNING Could not automatically construct presentation for presentation request Proof of Name:1.0.0 because referent 286e2d2b-9c61-4efd-88c5-73fd889a46a9 did not produce exactly one credential result. 0 credentials were returned from the wallet. 2019-08-27 10:53:21,894 aiohttp.access INFO 127.0.0.1 [27/Aug/2019:16:53:21 +0000] "POST / HTTP/1.1" 200 149 "-" "Python/3.7 aiohttp/3.5.4"

SmithSamuelM commented 5 years ago

That did not seem to fix it But that begs the question how do I create a presentation request that asks for proof that the name value is "Alice Jones"

SmithSamuelM commented 5 years ago

Is the problem that the requested predicates are empty. Do I have to have a predicate? I could not find any documentation that explains how to use the predicates. It wasn't clear that I needed a predicate in this case (proof of name matches value for name)

nrempel commented 5 years ago

Can you paste the results from Alice when calling /credentials to see what's in the wallet? You can also paste in your restrictions into the wql field {"cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"} which should return exactly 1 credential but is returning 0 in this case.

As for requesting name=="Alice Jones", there should be a default tag added that allows you to query by attribute which looks like this: {"attr::name::value": "Alice Jones"}. We just discovered last week that this was left unimplemented. It's available when making a wql query directly, but not available in the proof request restrictions. You can see the docs for what should be available for default tags here: https://github.com/hyperledger/indy-sdk/tree/master/docs/design/002-anoncreds#prover (3rd snippet down)

There is a ticket here regarding the unimplemented functionality: https://jira.hyperledger.org/browse/IS-1363

SmithSamuelM commented 5 years ago

This for getting all credentials: GET /credentials/ empty fields

{
  "results": [
    {
      "referent": "a38248ab-f2e9-47f5-a5e7-ac475ea06b35",
      "attrs": {
        "name": "Alice Jones"
      },
      "schema_id": "3avoBCqDMFHFaKUHug9s8W:2:faber:0.1.0",
      "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:13:default",
      "rev_reg_id": null,
      "cred_rev_id": null
    }
  ]
}
nrempel commented 5 years ago

It looks like the cred_def_id doesn't quite match that you're requesting. Try sending the proof request with

{"cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"}

SmithSamuelM commented 5 years ago

3avoBCqDMFHFaKUHug9s8W:3:CL:15:default vs 3avoBCqDMFHFaKUHug9s8W:3:CL:13:default

did not fix it

2019-08-27 11:12:36,313 indy.anoncreds DEBUG prover_close_credentials_search_for_proof_req: <<< res: None 2019-08-27 11:12:36,313 aries_cloudagent.messaging.base_handler WARNING Could not automatically construct presentation for presentation request Proof of Name:1.0.0 because referent 94a19215-dbef-4fb5-9db0-f06ac73cfa11 did not produce exactly one credential result. 0 credentials were returned from the wallet. 2019-08-27 11:12:36,314 aiohttp.access INFO 127.0.0.1 [27/Aug/2019:17:12:36 +0000] "POST / HTTP/1.1" 200 149 "-" "Python/3.7 aiohttp/3.5.4"

SmithSamuelM commented 5 years ago

Get credential/(id) with 3avoBCqDMFHFaKUHug9s8W:3:CL:13:default fails on alice

SmithSamuelM commented 5 years ago

Looks like something weird going on with Alice's wallet and credentials. Could this be a bug?

nrempel commented 5 years ago

Sorry, I had it backwards can you try sending the proof request with {"cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:13:default"}?

15 is what you had sent previously, 13 is the cred def id in the credential from the wallet.

SmithSamuelM commented 5 years ago

Faber is creating 3avoBCqDMFHFaKUHug9s8W:3:CL:15:default but alice has 3avoBCqDMFHFaKUHug9s8W:3:CL:13:default but can't retrieve it by id

SmithSamuelM commented 5 years ago

I did.

{
"connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7", "version": "1.0.0", "name": "Proof of Name", "requested_attributes": [ { "name": "Alice Jones", "restrictions": [ {"cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:13:default"} ] } ], "requested_predicates": [

] }

nrempel commented 5 years ago

Try this:

{ "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7", "version": "1.0.0", "name": "Proof of Name", "requested_attributes": [ { "name": "name", "restrictions": [ {"cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:13:default"} ] } ], "requested_predicates": [

] }

SmithSamuelM commented 5 years ago

Same result: aries_cloudagent.messaging.base_handler WARNING Could not automatically construct presentation for presentation request Proof of Name:1.0.0 because referent 459bcb70-b16d-4ddf-9e35-95e5077250d8 did not produce exactly one credential result. 0 credentials were returned from the wallet. 2019-08-27 11:17:47,487 aiohttp.access INFO 127.0.0.1 [27/Aug/2019:17:17:47 +0000] "POST / HTTP/1.1" 200 149 "-" "Python/3.7 aiohttp/3.5.4"

SmithSamuelM commented 5 years ago

Thats worse:

On Alice:


s8W\"},\"op\":\"REPLY\"}"
2019-08-27 11:18:40,584 indy.libindy.native.indy.services.ledger INFO   src/services/ledger/mod.rs:466 | parse_response() => Err(IndyError { inner: Error("data did not match any variant of untagged enum Reply", line: 0, column: 0)

Structure doesn't correspond to type. Most probably not found

Item not found on ledger })
2019-08-27 11:18:40,584 indy.libindy.native.indy.services.ledger INFO   src/services/ledger/mod.rs:310 | parse_get_cred_def_response() => Err(IndyError { inner: Error("data did not match any variant of untagged enum Reply", line: 0, column: 0)

Structure doesn't correspond to type. Most probably not found

Item not found on ledger })
2019-08-27 11:18:40,584 indy.libindy DEBUG _get_error_details: >>>
2019-08-27 11:18:40,584 indy.libindy DEBUG _get_error_details: <<< error_details: {'backtrace': '', 'message': "Error: Item not found on ledger\n  Caused by: Structure doesn't correspond to type. Most probably not found\n  Caused by: data did not match any variant of untagged enum Reply\n"}
2019-08-27 11:18:40,584 indy.libindy DEBUG _indy_callback: >>> command_handle: 346, err , args: (b'', b'')
2019-08-27 11:18:40,584 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 11:18:40,584 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 346, err , args: (b'', b'')
2019-08-27 11:18:40,584 indy.libindy WARNING _indy_loop_callback: Function returned error 
2019-08-27 11:18:40,585 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 11:18:40,585 asyncio ERROR Task exception was never retrieved
future: <Task finished coro=<PresentationRequestHandler.handle() done, defined at /usr/local/lib/python3.7/site-packages/aries_cloudagent/messaging/presentations/handlers/presentation_request_handler.py:16> exception=LedgerNotFound()>
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aries_cloudagent/messaging/presentations/handlers/presentation_request_handler.py", line 98, in handle
    presentation_exchange_record, credentials_for_presentation
  File "/usr/local/lib/python3.7/site-packages/aries_cloudagent/messaging/presentations/manager.py", line 188, in create_presentation
    credential_definition_id
  File "/usr/local/lib/python3.7/site-packages/aries_cloudagent/ledger/indy.py", line 466, in get_credential_definition
    return await self.fetch_credential_definition(credential_definition_id)
  File "/usr/local/lib/python3.7/site-packages/aries_cloudagent/ledger/indy.py", line 490, in fetch_credential_definition
    ) = await indy.ledger.parse_get_cred_def_response(response_json)
  File "/usr/local/lib/python3.7/site-packages/indy/ledger.py", line 644, in parse_get_cred_def_response
    parse_get_cred_def_response.cb)
indy.error.LedgerNotFound
2019-08-27 11:18:40,588 aiohttp.access INFO 127.0.0.1 [27/Aug/2019:17:18:39 +0000] "POST / HTTP/1.1" 200 149 "-" "Python/3.7 aiohttp/3.5.4"
2019-08-27 11:18:44,692 indy.libindy.native.zmq DEBUG   /Users/samuel/.cargo/registry/src/github.com-1ecc6299db9ec823/zmq-0.8.3/src/lib.rs:555 | socket dropped
2019-08-27 11:18:44,692 indy.libindy.native.zmq DEBUG   /Users/samuel/.cargo/registry/src/github.com-1ecc6299db9ec823/zmq-0.8.3/src/lib.rs:555 | socket dropped
2019-08-27 11:18:44,692 indy.libindy.native.zmq DEBUG   /Users/samuel/.cargo/registry/src/github.com-1ecc6299db9ec823/zmq-0.8.3/src/lib.rs:555 | socket dropped
2019-08-27 11:18:44,692 indy.libindy.native.zmq DEBUG   /Users/samuel/.cargo/registry/src/github.com-1ecc6299db9ec823/zmq-0.8.3/src/lib.rs:555 | socket dropped
2019-08-27 11:18:44,692 indy.libindy.native.zmq DEBUG   /Users/samuel/.cargo/registry/src/github.com-1ecc6299db9ec823/zmq-0.8.3/src/lib.rs:462 | context dropped
2019-08-27 11:18:45,586 aries_cloudagent.ledger.indy DEBUG Closing pool ledger after timeout
2019-08-27 11:18:45,586 indy.pool DEBUG close_pool_ledger: >>> config_name: 81
2019-08-27 11:18:45,586 indy.libindy DEBUG do_call: >>> name: indy_close_pool_ledger, args: (c_int(81), <CFunctionType object at 0x1090127a0>)
2019-08-27 11:18:45,586 indy.libindy DEBUG do_call: Function indy_close_pool_ledger returned err: 0
2019-08-27 11:18:45,587 indy.libindy DEBUG do_call: <<< <Future pending>
2019-08-27 11:18:45,587 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:140 | PoolCommand command received
2019-08-27 11:18:45,587 indy.libindy.native.pool_command_executor INFO  src/commands/pool.rs:94 | Close command received
2019-08-27 11:18:45,587 indy.libindy.native.indy.commands.pool DEBUG    src/commands/pool.rs:188 | close >>> handle: 81
2019-08-27 11:18:45,587 indy.libindy.native.indy.services.pool.pool INFO    src/services/pool/pool.rs:737 | Drop started
2019-08-27 11:18:45,588 indy.libindy.native.indy.services.pool.pool INFO    src/services/pool/pool.rs:745 | Drop wait worker
2019-08-27 11:18:45,588 indy.libindy.native.zmq DEBUG   /Users/samuel/.cargo/registry/src/github.com-1ecc6299db9ec823/zmq-0.8.3/src/lib.rs:555 | socket dropped
2019-08-27 11:18:45,588 indy.libindy.native.indy.services.pool.pool INFO    src/services/pool/pool.rs:748 | Drop finished
2019-08-27 11:18:45,588 indy.libindy.native.zmq DEBUG   /Users/samuel/.cargo/registry/src/github.com-1ecc6299db9ec823/zmq-0.8.3/src/lib.rs:555 | socket dropped
2019-08-27 11:18:45,589 indy.libindy.native.zmq DEBUG   /Users/samuel/.cargo/registry/src/github.com-1ecc6299db9ec823/zmq-0.8.3/src/lib.rs:462 | context dropped
2019-08-27 11:18:45,590 indy.libindy.native.indy.commands.pool DEBUG    src/commands/pool.rs:202 | close <<<
2019-08-27 11:18:45,590 indy.libindy.native.indy.commands INFO  src/commands/mod.rs:140 | PoolCommand command received
2019-08-27 11:18:45,590 indy.libindy.native.pool_command_executor INFO  src/commands/pool.rs:98 | CloseAck command received
2019-08-27 11:18:45,591 indy.libindy DEBUG _indy_callback: >>> command_handle: 347, err , args: ()
2019-08-27 11:18:45,591 indy.libindy DEBUG _indy_callback: <<<
2019-08-27 11:18:45,591 indy.libindy DEBUG _indy_loop_callback: >>> command_handle: 347, err , args: ()
2019-08-27 11:18:45,591 indy.libindy DEBUG _indy_loop_callback: Function returned None
2019-08-27 11:18:45,591 indy.libindy DEBUG _indy_loop_callback <<<
2019-08-27 11:18:45,591 indy.pool DEBUG close_pool_ledger: <<< res: None
SmithSamuelM commented 5 years ago

How about I erase Alices wallet. Could it be that moving from aca-py 0.2.1 to 0.3.1 has exposed a bug that corrupts the wallets?

nrempel commented 5 years ago

That's a libindy error - it looks like you development ledger is out of sync with the state of the agent. Perhaps you wiped away the ledger during debugging without resetting the state of the agent?

I recommend nuking the dev environment (all environments including agents and ledger) and trying again with a fresh slate.

SmithSamuelM commented 5 years ago

When you say resetting the state of the agent what to you mean by that?

SmithSamuelM commented 5 years ago

I want to clarify. If the ledger is restarted then does that mean I have to erase the agent wallets in every case?

SmithSamuelM commented 5 years ago

Are credential definitions stored in the wallet not just the ledger?
I will try nuking everything and starting over.

SmithSamuelM commented 5 years ago

I though the wallet only stored DIDs and credentials. Is it storing something else?

SmithSamuelM commented 5 years ago

Apparently the wallet assumes a given ledger. So each wallet is ledger specific and ledger state specific?

SmithSamuelM commented 5 years ago

Just clarifying.

nrempel commented 5 years ago

It appears the agent's wallet and the ledger are out of sync. libindy makes the assumption that the data on the ledger is permanent and never changes (one of the properties of a blockchain). In the error above, libindy is requesting a credential definition from the ledger which exists in the wallet but does not exist on the ledger.

The wallet stores credential definitions which includes key material. Only a portion of the credential definition is published the ledger and a private portion remains only in the issuer's wallet.

This is likely caused by the state of the ledger being erased without the state of agents being erased (the wallets).

It does not appear that you are using the docker image to run the agents, so if you delete the state of the ledger, you also need to delete the state of the agents. This will be a directory on your filesystem - I believe libindy uses something like /home/.indy.

SmithSamuelM commented 5 years ago

OK understood. Thats good to know that the credential definitions are also stored in the wallet.

I nuked everything and started over. Now I issue the credential to Alice. Alice sees it via a credential exchange but its does not go into Alices wallet.

On Alice GET /credential_exchange shows exchange with state "credential_received" but GET /credentials is empty

esponse body
Download
{
  "results": [
    {
      "credential_offer": {
        "schema_id": "3avoBCqDMFHFaKUHug9s8W:2:fabername:0.1.0",
        "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
        "key_correctness_proof": {
          "c": "114229557878049839320584308429909849901081494573916884342351591439780805883176",
          "xz_cap": "2434933145240031319093536632605165379737643113496707382687868416065463581709239568491168055889750245971441207883325784410157561931320474961562958924151226268619977300712958574658392814001140189166709703286031481385713096122792620879699306228048788967118890665374834209932514663652823036975042547748375972295875365138788016435356340125369941515948610235629385678120358129786553053005045548362086656762920051776064517532805746462630717476172935386613982326114489237237367285986116010104880081629494178618589178572875471299851419845579030886571070266811993869147961552782421318647303291399138636855658299930914790419176456578229930429971081003009750444139631809286071044829470671362155618961825001",
          "xr_cap": [
            [
              "master_secret",
              "1975965834331772983220532068828440730259531431950294722463465159669241898936146277843398993581026931599924305794452844450363695450250080170821257125112092001668179009285416758173075116423700613645950354145690839158521725788059448193295096864887615765863626214056243469227178930293448206053553066017588023434211149727146169431621472720907745019641787785893012090349588721899914284117148499920169735746695587340438020625270368862185965826321910847801442094188060392639111444616080326955846032361225741809744549894089929465557519960270499361517261344203542878762756320459449777045468475253767084441499220224615595175056193255780513854044350136717405628147531152166473763391320346819907171081946817"
            ],
            [
              "name",
              "1504922442300168017322021517288125764933880297822096340415917290649991972422319440733773325952031557435149162576408108432077512389190046209569274381617496483654536631962834690928601728112064362292181153738725077486455752749092119691948592744857590000320641342188914124060002905742900515096339736227212179278805625062772292411052032390248249841781211375479402090719959165910278196204844242947459347035947364531896649373464834141252888007165543693257266539435006108728453594610412436551615684411658267266634104061342641436504265176822659856674813454254813619421436849432990743543273672885283489452336972483545742549142943689784052665226183878546826650592552438173005145930151232049479965601435793"
            ]
          ]
        },
        "nonce": "278465540976583307616780"
      },
      "credential_exchange_id": "fbff70a7-38b9-4550-90f1-e125b0fbf471",
      "credential_request_metadata": {
        "master_secret_blinding_data": {
          "v_prime": "4173605180196021889496595927692598192584551985042297124887913014570425495863475872217601614020384092323829954338577583605748183763215132379717272902806399840247537936063039266449262395960684229841883465544113283523854550718427990877356806371478859814847730607434750071378968931836323245317947900374096769008976011091634795446225979463089067775644240557837716439215343066306940954213396473367313302946965063833101083683412051872145066601756439447242833894689822731986903336523155269141403923097918739644069721590058378990240897119310629175525107185803591783681895162963614450870673495208459123219442808929257569148547608992411169645883931046",
          "vr_prime": null
        },
        "nonce": "741006148315631519596362",
        "master_secret_name": "agent_a2"
      },
      "raw_credential": {
        "schema_id": "3avoBCqDMFHFaKUHug9s8W:2:fabername:0.1.0",
        "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
        "rev_reg_id": null,
        "values": {
          "name": {
            "raw": "Alice Jones",
            "encoded": "72896232743708443677449555551687504476536417389324439453514323796296385992918"
          }
        },
        "signature": {
          "p_credential": {
            "m_2": "101442342901504146962088858552210620259780660529402903728231883250678141867851",
            "a": "9567006635521372948098596958853201326324223786727434428323466284592153026727673045574705059564742550438881519108580275680291399196944222353640896325201390954749616774366510931892203388768796492471751484673534975625641788615060922249911469683357130868900082432312224906172935412255602765262394804407754983406106536078312229340330480079044161514559999397043921185731661432953539191559451137120264146312037232195373078923285891674458787026656643244478217178922960643752481260728571875122715282785704782993039237284135899198328353760539731468497273454011638037761438508884028812511977705941303857508802621907587675558047",
            "e": "259344723055062059907025491480697571938277889515152306249728583105665800713306759149981690559193987143012367913206299323899696942213235956742929836510178472681008914216437830995321",
            "v": "8886258745281340794908943897226535097847511423950921619661458191829876741373573949527530914380934819274113524441153464897476795553308702510096548859804774465172241885805696813956080103062920310165125537024392679085390666510635210724377006539644490905963126685648644381640245692521814571366379518376918164076521873327154398546065293400246309191484594262885845533270995151890951785757183876543022936005073720931774033312080383062886021146008700451767219189468098473063671038706101043636409766885570973528363118376940685028450823724425285288744051808786748393601758155196998832687504392494633411166960913902276366692788516245751785418481401738894655467629834310818756965521365009824228261118732330276256254520066698852163454604709843721549125989901475707260731918481155011222568853631805183191115359985975306807794995268674"
          },
          "r_credential": null
        },
        "signature_correctness_proof": {
          "se": "9334690688834106525912178076108419863856785871225912034112691821879442593559169726256358409395967919980836786635933371062344550802350061721625136383688092863080204922744591461391836356978915676345169327685243946826934401491690699231964647037743685319778036863419686823822312671816561855403165923506104511287899513206912671227002663052512634482945422851239864828950963860762582835858758386393554434270474802035971766056512035668920660670724629710981350375038230952266598594346092021891645844957086274165994755364958601272140765114499784819566097198929163230640958679279950117120345264552687065734831619284963605351339",
          "c": "30844141510421662580003022884802606850293210162020289897472993409916410837512"
        },
        "rev_reg": null,
        "witness": null
      },
      "credential_request": {
        "prover_did": "Qqi1qhFnEaFTctkAp46Yf7",
        "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
        "blinded_ms": {
          "u": "13434119080029711536515238586587488629115618765228586694843611872857647921220361392629219793092789805691843046048793166049678651388344843890233220447067454246061635866244110318211822883579680217742106118377580019832466925931348980540209369059141551229526448757427148310805045368560359335350833451955498259690220786610648000882998114204813055198857749832871980673621738358550200548521080329545743179897980588075435305610403525663631447364771837097408498754503649317475229403528230892012469714893751900986120630998224224954958890284495747843963447533334025333058316177943587659146085997561413825472444737790748936547608",
          "ur": null,
          "hidden_attributes": [
            "master_secret"
          ],
          "committed_attributes": {}
        },
        "blinded_ms_correctness_proof": {
          "c": "113927382588727307094307641820809099713268275450741302540592780606709343661496",
          "v_dash_cap": "475487914138486359296697033505661371534836058315713636535204249724654754390293373617054923799987194584531254095857559327925317253466798864263964576832979970831408927769047671175546098945401886147106959452952604417050999000659742396209724136853381425195540499219325712496736535790517309844861160029568857904347613162717887544822799705282986026705097105859415237491434450806099075522053775099289757518954671978385328049073804036592681691517571856737592488252564138518452477534583948830601060095365955770511400476928332730302768356381285758443658547202405407234365104601699833690463889135226194646485163796085835501160832889397255775962672795063932640849816214369544119433017450726092155873334003883547629752684030172620",
          "m_caps": {
            "master_secret": "5587462592948870169191480220625592192959028486803965600561048359370367991634946603115366255972632246359915401447745019861054955045815348343048830476761697717177009549698177462254"
          },
          "r_caps": {}
        },
        "nonce": "741006148315631519596362"
      },
      "schema_id": "3avoBCqDMFHFaKUHug9s8W:2:fabername:0.1.0",
      "connection_id": "eaa7b4c0-72f0-45b0-96ec-8decd4d2cd3a",
      "auto_issue": false,
      "created_at": "2019-08-27 18:01:07.391637Z",
      "thread_id": "2c61ed1e-3980-4312-85cf-263b26218377",
      "state": "credential_received",
      "updated_at": "2019-08-27 18:01:08.220408Z",
      "credential_definition_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default",
      "initiator": "external"
    }
  ]
}
SmithSamuelM commented 5 years ago

So is there some other aca-py parameter in 0.3.1 that I need to complete the credential exchange? It looks like the one credential was successfully exchanged with version 0.2.1 of aca-py because I did not nuke the wallets. Now Alice has no credentials. do I need to do something on Alice's end to accept the credential?

SmithSamuelM commented 5 years ago

FYI on macOS the wallets are in ~/.indy_client/wallet/

SmithSamuelM commented 5 years ago

This is the credential send

{ "connection_id": "74ee1195-7a95-4428-8bd5-5c35cdca53a8", "credential_definition_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default", "credential_values": {"name": "Alice Jones"} }

nrempel commented 5 years ago

As of 0.3.0, you must call /credential_exchange/{id}/store after the (new) credential_received state. But to achieve the same behaviour as before, you can add another cli start parameter --auto-store-credential.

SmithSamuelM commented 5 years ago

@nrempel What do you need too see to figure out why Alice is not storing the credential in her wallet?

nrempel commented 5 years ago

As per my last message, my recommendation is to add --auto-store-credential to your CLI start parameters. If you query the credential_exchange/{id} endpoint you should be able to see which state the exchange is in. My guess is that it is in the credential_received state and waiting for instruction.

SmithSamuelM commented 5 years ago

Great thanks curl -X POST /credential_exchange/{id}/store with 3avoBCqDMFHFaKUHug9s8W:3:CL:15:default

Fails.

I tried both the credential_definition_id (above) and the credential_exchange_id both fail. The API says enter credential_id. Its not clear which credential id.

But neither worked. I will try starting over with the --auto-store-credential to see if that works

nrempel commented 5 years ago

Hey Sam, the id there should be the credential_exchange_id from the credential exchange object.

When you use that and it fails, does it give any information or a stack trace or anything?

Let me know if it works with the --auto-store-credential flag.

SmithSamuelM commented 5 years ago

I started over with --auto_store_credential

This fixes one issue, The new credential created is stored on Alice but I can't retrieve the credential by ID.

I redid everything from scratch and recorded all the steps. However the presentation request fails just like before. I get the same problem on Alice.
It looks to me like there is a bug in the agent in that it is not able to retrieve credentials. I filed another issue that I encountered in this process here https://github.com/hyperledger/aries-cloudagent-python/issues/163

I think these are related.

Faber

GET /presentation_exchange/{id} Fetch a single presentation exchange record

afbc0823-fdfb-42c7-b3a5-d4b3eb9c7d1f

Response

{
  "state": "request_sent",
  "thread_id": "b16296d0-b9e3-47d6-919b-83c76030df9f",
  "presentation_request": {
    "name": "Proof of Name",
    "version": "1.0.0",
    "nonce": "43920717856735666242804213433487724698",
    "requested_attributes": {
      "15f10ee1-2dbb-45c6-b25b-b3e5e4c37647": {
        "name": "Alice Jones",
        "restrictions": [
          {
            "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
          }
        ]
      }
    },
    "requested_predicates": {}
  },
  "updated_at": "2019-08-26 21:53:56.764847Z",
  "created_at": "2019-08-26 21:53:56.764847Z",
  "initiator": "self",
  "connection_id": "538f387a-91e2-49b7-9892-dbf7688ba5a7",
  "presentation_exchange_id": "afbc0823-fdfb-42c7-b3a5-d4b3eb9c7d1f"
}

Here is the error on Alice's console

2019-08-29 13:10:17,730 aries_cloudagent.messaging.base_handler WARNING Could not automatically construct presentation for presentation request Proof of Name:1.0.0 because referent 3f07dba4-94dc-44d4-b9a0-23e1c0a32259 did not produce exactly one credential result. 0 credentials were returned from the wallet.
2019-08-29 13:10:17,730 aiohttp.access INFO 127.0.0.1 [29/Aug/2019:19:10:17 +0000] "POST / HTTP/1.1" 200 149 "-" "Python/3.7 aiohttp/3.5.4"

Alice presentation

 {
      "presentation_request": {
        "name": "Proof of Name",
        "version": "1.0.0",
        "nonce": "85521559468369794254347781396050206536",
        "requested_attributes": {
          "3f07dba4-94dc-44d4-b9a0-23e1c0a32259": {
            "name": "Alice Jones",
            "restrictions": [
              {
                "cred_def_id": "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"
              }
            ]
          }
        },
        "requested_predicates": {}
      },
      "presentation_exchange_id": "2743fa5e-4f86-4a61-8b96-6d66d15e7955",
      "created_at": "2019-08-29 19:10:17.721705Z",
      "initiator": "external",
      "thread_id": "57eab065-084e-4cd7-8103-77fa4fa8a70d",
      "updated_at": "2019-08-29 19:10:17.721705Z",
      "connection_id": "18f5e869-b565-4c12-9ae8-4f7c86c90aa3",
      "state": "request_received"
    },
SmithSamuelM commented 5 years ago

Changed request from Faber to this and it verified.

{  
  "connection_id": "9793558d-2d24-42d2-a249-dc9a4c48a886",
  "version": "1.0.0",
  "name": "Proof of Name",
  "requested_attributes": 
  [
    {
      "name": "name",
      "restrictions": 
      [
        {"cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default"}
      ]
    }
  ],
  "requested_predicates": 
  [

  ]
}
SmithSamuelM commented 5 years ago

So the two issues are not related.

The question I have is what exactly did the presentation request ask for.

I wanted to get proof of name but the request looked like it was asking for proof of attribute name not proof that the value is Alice Jones?

swcurran commented 5 years ago

The proof request format is exactly what Indy supports, so what you will need to do is determine how to do what you want to do in the indy-sdk - how to format the proof request. There is no ACA-Py magic happening there.

It looks like you are trying to do an "equals" predicate, but I'm not sure that is supported in the indy-sdk, or if it is, how to request it. AFAIK only the ">=" predicate is the only one that is supported. That said, I've heard the Indy team say that "equals" is supported, but I've never seen how to do that. Seems like an obvious feature, but we've not ever had to do that.

On Thu, Aug 29, 2019 at 12:36 PM Samuel Smith notifications@github.com wrote:

So the two issues are not related.

The question I have is what exactly did the presentation request ask for.

I wanted to get proof of name but the request looked like it was asking for proof of attribute name not proof that the value is Alice Jones?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/hyperledger/aries-cloudagent-python/issues/155?email_source=notifications&email_token=AAHYRQWLLEJYVZIL2EGHB63QHAQMVA5CNFSM4IPXL5U2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5PSUZI#issuecomment-526330469, or mute the thread https://github.com/notifications/unsubscribe-auth/AAHYRQWZOGLXXV5GFTGEVHDQHAQMVANCNFSM4IPXL5UQ .

SmithSamuelM commented 5 years ago

Hmm. It seems like proof of equals would be the majority use case. Like proof that your registration identifier is equal to X. As in the ID we issued you. Or that your birth name is your birth name on your certificate. Your answer is totally surprising to me. There must be something I am missing.

nrempel commented 5 years ago

This is what I'm looking at right now in libindy - we actually ran into the same issue.

There are a number of tags that are added to credentials stored in the wallet that can be used in wql queries. For some reason, the proof request restrictions is a limited subset of the tags and does not support the "value equals" tag.

In theory, you should be able to do the following:

{  
  "connection_id": "9793558d-2d24-42d2-a249-dc9a4c48a886",
  "version": "1.0.0",
  "name": "Proof of Name",
  "requested_attributes": 
  [
    {
      "name": "name",
      "restrictions": 
      [
        {"cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:15:default", "attr:name::value": "Alice Jones"}
      ]
    }
  ],
  "requested_predicates": 
  [

  ]
}

"Restrict credential results to those derived from 3avoBCqDMFHFaKUHug9s8W:3:CL:15:default AND where the value of the attribute name is equal to "Alice Jones".

For some reason this has been left unimplemented. I opened a ticket for this functionality here: https://jira.hyperledger.org/browse/IS-1363

As far as using an "is equal to" predicate, it seems that the indy team only ever implemented >= - greater than or equal to, so that isn't an option either.

SmithSamuelM commented 5 years ago

BTW here is a writeup of the full Demo with all the steps. https://github.com/SmithSamuelM/leopy/blob/master/src/demo/FaberAliceCredential.md

nrempel commented 5 years ago

I'm closing this for now but please open a new issue if you have any questions!