Use of Blockchain?

In exactly what ways is a blockchain used?

For what data?

And what blockchain?

The blockchain is used as a backend to store Jami usernames.

Each Jami account is identified by a unique hash generated at account creation time. This hash can be shared and used to add new contacts and communicate with them.

As those IDs are impractical for humans to remember, users can optionally associate their ID with a unique username of their choice. In order to keep Jami as distributed as possible, usernames are stored on an Ethereum blockchain and accessible by the Jami application via a name server.

As we rely on a blockchain to manage usernames, it is not possible to modify and delete a username once created.

For more info, you can read the following article on Jami blog: https://jami.net/the-jami-blockchain-switches-from-proof-of-work-to-proof-of-authority/

1 Like

I read that article. Like the rest of the Jami articles, it is a wall of words that do not have anything to do with a user experience. Someone over there likes to talk.

Please answer the question I asked about exactly how this transaction with the blockchain is accomplished. A link to the smart contract code would be a good start, along with a schematic of how the smart contract acts with whatever else is on the server. For an open source project, Jami is not very open.

The source code of the Jami name service is available online. There you can find the source code of the Ethereum smart contract.

Excellent. Two suggestions:

first, if this is linked to from the website, it is too hard to find (else, link it)

second, do you release this under AGPL and do you have any statement that says that you use this code in unmodified form on your servers?

Seeing the solidity code is great - Is there access to the node that is running this blockchain and if so, what is the deployed contract address?

Alternately, is there a way to use the contract’s transfer() function? I have a registered username for an account I cannot export (says bad pw but I am logged in) so I’d like to transfer the username to a different account.

Hello:Bonjour,
(ELI5 respons is appreciated)
A core aspect is the blockchain. Human-readable, easy to recognize unique IDs (=name server) for that purpose. Today, build around Ethereum. Does it make a sense,having the option to anchor ‘JAMI’ on another blockchain? Is this like creating a twin? Can jami live with a second blockchain?

Hi @odlaetet, welcome to the Jami forum!

Anyone can implement their own name server. See Name Server Protocol · Wiki · savoirfairelinux / jami-project · GitLab

Name servers are completely optional. Jami’s default nameserver at ns.jami.net uses the Ethereum blockchain, but the blockchain is not really a core part of Jami. Your Jami app does not have any Ethereum/blockchain code .

So yes, someone can use a different blockchain. It will create a new namespace for Jami users who use that name server.

@donpdonp you can’t transfer the username to a different account with the default name server.

Hi, and in case of ‘other blockchain’ , the rules of name formatting must be respected for the jami application?@wrycode

On the second reply of your message: a keypair with feature to binding an unique name (first come first served principle) and with a chainOp : transfer ownersship, then you can exchange name propreties between peers.

@odlaetet I believe the regular expressions that check the username are implemented locally for now, so yes you probably need to use the same name formatting. (I am not positive though)

As for your second idea, sure, it’s not impossible. I personally prefer to not use the name servers at all.

Bonjour et Bienvenue @odlaetet

pour les francophones : The Jami blockchain switches from proof of work to proof of authority