What is needed for creating a light wallet?


#1

Hey friends,

I’m new to blockchain development and would love some clarification regarding wallets. Specifically, what is needed to create a light wallet - one that doesn’t have to keep the full copy of the blockchain?

From what I understand, then SPV client is one that connects to a trusted full node, and only verifies user’s transactions, without having to verify everybody else’s.

Is it possible to create an SPV client for Cardano SL? Are we just waiting for NiPoPoS to be implemented in order to do it differently?

Hope the question makes sense.


#2

Light client mode is a feature that will significantly reduce the blockchain syncing time. It will enable users to start using Daedalus without having to wait for the whole blockchain to finish being downloaded.

This means there would be checkpoints, which are snapshots of the state of the blockchain at certain points in time. When using a checkpoint, Daedalus only needs to sync the blockchain from the latest checkpoint onwards, rather than the entire blockchain. This will help most when starting Daedalus for the first time, but will also help when Daedalus has not been used for several weeks. (Not sure if you have the Daedalus wallet already, but at times, it can take quite a bit of time to sync - having this light version will significantly reduce that time)


#3

If you’re a technical person you can go read the draft on this exact topic posted last week at


#4

Does the team support and endorse creation of new wallets and light wallets? I’m excited about the idea and can say that I can imagine adoption and acceptance of ADA will increase with a variety of wallets and light wallets.


#5

There’s the “Light client support” item on the cardanoroadmap.com. Code is prepared for the light client support right now (along with the Ledger support).


#6

And do they support the possibility of wallets not made by IOHK?


#7

Who are “they”? And how should “they” support it? From point of view of the community - anyone can create a wallet or a client, and if it’s a good software - people will use it. The only two natural problems that arise are:

  1. How do you trust this particular piece of software?

  2. How do you trust the company\person to keep supporting the software?

Most of the people in the community do not have the skill-set to check the code for themselves, or to figure out a lot of stuff that programmers might assume as obvious. And the process of testing, auditing, and verifying a serious piece of software takes a lot of time and resources. Additionally, even if community manages to verify the specific released version of a software - does not guarantee that next updated version will not contain an error, or a serious problem, or an outright hack.

IOHK is not some kind of an overlord, ruling over users. They are hired to develop safe software and to keep updating it in a safe manner, providing as much transparency as possible. So it’s not the IOHK who rules, but the community. And only community decides - will it use non-IOHK software or not.

So when we are talking about “independent” clients\wallets the question should be not “how IOHK support it”, but rather: what does the developer do, in order to minimize required community trust? A good company should itself make sure to show people how exactly they do not have to trust it. People will trust audited software - so hire an audit company. People will trust someone who is active in the community - so prepare people to you contribution, be active in the community, discuss what things may be done differently and why, show people that you know what you are doing. Ask people which audit company they would prefer you to hire. Communicate with the developers to make sure they are interested to verify your code.

TL;DR - the IOHK is NOT “Cardano”. Community IS “Cardano”. So if you’re producing software for the community to use - make sure community will want to use it. They don’t have to ask IOHK’s permission to do so.

P.S. After 2020 community may additionally try to hire IOHK on a separate gig reviewing and auditing someone’s software. But of course, assuming that people would want to spend treasury money on it, and IOHK would want the job.


#8

Very well said!


#9

One point may is on how to clearly separate between valuable contribution and obviously scam? The tricky part resides in a very small grey area between of them. So how can YOU support your indie-wallet to become accepted as a valuable alternative?


#10

Just using a pronoun! Not suggesting “they” are an evil organization bent on world domination :slight_smile:

“They” is the Cardano Foundation Team.

I appreciate the professionalism of the team and pick ADA as a main investment because of all the indications I see here and there with how big their vision is. I have not seen another team that impresses me as much with how prepared they are to move quickly and be stable and secure. And maybe that is partially to do with how I feel about Haskell (and Nix).

One way I’ve seen wallets supported before has been reference implementation with guidelines on how to make safe and usable wallets. Then I suppose they have an API available for programmers. For instance, with Bitcoin, though I’m sure there are a number of scam wallets, there is also a good variety of useful and wonderful wallets. How does anybody know whether Jaxx or Electrum or Mycelium or XYZ is reliable or trash? I suppose it can be a combination of looking for red flags, getting a sense of whether it is made by a reputable company, and maybe even having some industry experience to know what’s quality and what leaks like a sieve.

If I’m looking at a company making a wallet I may ask is that place hiring? Do they have a legitimate team? Do they address issues and have a clue when things are broken? Are they fast to deploy fixes? I think there are indications you can use as gut checks to know whether something is up as well.

If it’s an open source developer then maybe that person is a well regarded actual person in the community. I’m more likely to try a wallet from an actual person with a reputation at stake.

I don’t know though, maybe it is time for some sort of trustworthiness system like what Martti Malmi is trying to do.