Sadly we don't have the bandwidth to maintain the full uPort stack anymore.
All of our efforts are now focused on the Veramo framework ( https://github.com/uport-project/veramo ) and the libraries that uPort has donated to the Decentralized Identity Foundation.
If you are just starting out, it would be a good idea to check out https://veramo.io instead of relying on the uport-credentials / uPort mobile combo.
It is not yet a full replacement for the uPort stack (and I'm not sure if it will ever be a 1:1 mapping there) but the goal is to provide a standards-compliant, multi-platform framework for decentralized identity and verifiable credentials that can also interoperate with other projects and efforts in this space.
Hi, @yiannakpavy. It's not naive :) Indeed uPort was using this model in the first version, but that has changed a long time ago.
The latest versions of uPort no longer use a proxy contract to represent an identity.
Instead, any ethereum address is considered an identity (see https://github.com/decentralized-identity/ethr-did-resolver).
Since these addresses can be created without interacting with the blockchain, it means that creating an identity is free.
If one needs to update the identity, then a transaction is required and that will cost some gas.
The smart contract on which this is based (https://github.com/uport-project/ethr-did-registry) allows a third party (like a fueling service) to pay for the transaction if the right signature is provided by the identity for which it posts.
This mechanism later got the name of meta-transaction.
That being said, please read my previous note about the state of the uPort stack: https://gitter.im/uport-project/Lobby?at=60422bb8823b6654d285dcc5
Please take a look at https://github.com/uport-project/veramo as this is where all the development work is being focused now.
Of course, most things can be achieved off-chain. The chain is only used to update public key information (that can be used to verify those off-chain attestations).
To update those keys on behalf of an identity, you have to have control of the identity, and that is what the ethr-did-registry smart-contract ensures.
If you have more questions about these things, please post them on https://github.com/uport-project/veramo/discussions
There are more people there that can answer.
Hello everyone, I'm trying to lookup for DID owner (while connected with the local Ganache network).
The sample code is:
const providerConfig = {
rpcUrl: "http://127.0.0.1:8545",
chainNameOrId: "5777",
};
const { EthrDID } = require("ethr-did");
let createDid = async () => {
const keypair = EthrDID.createKeyPair();
const ethrDid = new EthrDID({ ...keypair, ...providerConfig });
const owner = await ethrDid.lookupOwner();
console.log(owner);
};
createDid();
However, I'm getting the following error:
node_modules/@ethersproject/logger/lib/index.js:187
var error = new Error(message);
^
Error: call revert exception (method="identityOwner(address)", errorArgs=null, errorName=null, errorSignature=null, reason=null, code=CALL_EXCEPTION, version=abi/5.3.0)
..... // remove for brevity
reason: null,
code: 'CALL_EXCEPTION',
method: 'identityOwner(address)',
errorArgs: null,
errorName: null,
errorSignature: null,
address: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b',
args: [ '0xAE007a5da29A546064D0CD52d61209f00da25585' ],
transaction: {
data: '0x8733d4e8000000000000000000000000ae007a5da29a546064d0cd52d61209f00da25585',
to: '0xdCa7EF03e98e0DC2B855bE647C39ABe984fcF21B'
}
}
any help what I'm missing here? thanks