1

I have a note taking dapp on the Ardor blockchain and say I wanted to migrate it to EOS.

Currently these notes are just palin text messages stored in the blockchain directly (ardor data cloud). In EOS it would be ram right? But ram prices are very expensive if each user were to store over 10KB of text. What solutions are there for this?

And another thing is onboarding of users. Currently the Ardor blockchain lets me just generate key pairs and the user can just start using this dapp without the need for me to send them the parent coin or setup an account name for them. Is there a way around this in eos?

If the note dapp is on eos, each user that signs up has the hurdle of needing to "sign up" and needs to have their eos staked and have some ram on hand. A bit technical if you just want to take notes and not care about all the complexities of blockchain.

2 Answers 2

2

This issue has always been a tricky one, I believe steemit stores all the data on the block(which is insane if you consider the EOS ram prices). It is especially annoying for the second point that you make. I still don't think the current EOS is very user-friendly for new users at this point.

In my experience, some sort-of hybrid with IPFS is probably the most decentralized solution and closely reflects the core of EOS blockchain Dapp.

One alternative is to use a mongo-db plugin that allows you to scan the blocks and organize the transactions in a database. This could be paired up with a backend server of your choosing(nodejs, react etc) and be presented to the users. (https://developers.eos.io/eosio-nodeos/docs/mongo_db_plugin) Although technically, the data would NOT be stored in the blockchain to be instantly accessible on smart-contracts. There would be some maneuvering needed for it to work properly with your dapp. This way, you only really need the users to have a small ram space(few KBs i would presume)

1

You may want to check out NoteChain, which is Block.one's note taking application that they use as an example project for dApp developers to use as boilerplate:

NoteChain demonstrates the eosio platform running a blockchain as a local single node test net with a simple DApp, NoteChain. NoteChain allows users to create and update notes.

...

The sample DApp demonstrates storing data in multi index table and retrieving this data into the web based UI. NoteChain is a simple note taking application, where notes are tied to user accounts.

...

Each account can then be used to add a note to the blockchain. The individual notes are saved in a multi-index table and for simplicity are of fixed width. Each account may have one note attached to it, adding a note to an account with an existing note will replace the existing note with a new note.

So, yes, in their dApp example, they store the notes in RAM.

But ram prices are very expensive if each user were to store over 10KB of text. What solutions are there for this?

Other than RAM, you could store the data in the blockchain itself, in which case you won't be able to access the data from smart contracts and you'd need some form of indexing along with access to a persistent copy of the entire blockchain.

Alternatively, you may be able to use off-chain decentralized solutions such as IPFS: Dan wrote a paper on EOSIO Storage using IPFS; or off-chain centralized solutions such as Demux.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.