2

The Mongo_DB_plugin can be configured to listen to actions on chain from a locally hosted node. This can be resource intensive in processing large blocks, you don't have the option to listen through an API, and the options for storing data are limited to 5 options: --mongodb-store-blocks Enables storing blocks in mongodb. ...


2

Demux is intended for use when there is s lot of data that you want to save to the blockchain but not necessarily to RAM. RAM is an expensive resource and only needed if the dApp needs access to the data. Historical data is saved on disk in the blockchain log files and demux captures it to a database of your choosing. Then you have the convenience of a ...


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 ...


2

Well, it depends. But you've already got the right path to reduce RAM usage. The first thing is whether the user state you mention is intend to be stored on the blockchain or not, fully or partly? What is the difference? To be simplified: on chain data is what in the RAM. Smart contract can interact with the on chain data. It is also "protected" by the ...


1

First of all, user data does not necessarily equal personal data and as long as you do not store personal data or something that falls under the GDPR on a public Blockchain you are ok. It's simple, let it be, don't store personal data on a public blockchain (note what the GDPR says, there are many different sources for pseudonymisation and anonymisation ...


1

Without knowing the exact game logic I can't really answer your question but the following should at least show you how to nest objects. struct [[eosio::table]] user_t { struct card_skin_t { eosio::name name; uint8_t owned; } struct card_t { eosio::name card_name; eosio::name ...


1

My answer is too long to fit in comment, so leave here. I came to know we are using different terms, but saying same things. eosio::multi_index is a table and you can add items (I called these 'rows'), but you said that you will make only one object. Then your code will be like this: struct other { ... }; struct [[eosio::table]] some { uint64_t id; ...


1

Other than the error of the duplicate key I would get a deadlock detected error, if I ever ran the demux after previously running it, or I would get current transaction is aborted, commands ignored until end of transaction block. I solved this issue, by commenting out the check functions in throwIfNotSetup() function in MigrationRunner.js (line 150 as of ...


1

That's not a clear question, because a memo-field can be implemented in several different ways and if a developer wants to, he can also store it in RAM. Assuming that you mean the memo of a standard transfer-action - it is stored in the actual block. Every Node is storing this data as there are currently no light-nodes available. Can't answer the last ...


1

chain_plugin is actually the core part that manages the blockchain data structure in nodeos. Most of time it is enabled automatically. mongo_db_plugin is an add-on plugin that aims to replace the previous history_plugin and history_api_plugin, and is for data access / analysis / reporting purpose only. It is more like a peripheral module attached to the ...


1

nodeos syncing is very CPU intensive but mongo_db_plugin is even much more CPU and IO intensive. I see you are using a cloud server for nodeos, which is very likely not performant enough. In my experience on AWS, the syncing speed was also slower than new block generation. You should try a CPU enhanced instance, or more preferrably a bare-metal server for ...


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 ...


1

I've integrated it in my simple Chess Dapp if you'd like a code example: https://github.com/NatPDeveloper/eos-chess/tree/master/js/lib/demux-js Specifying contract:action to listen for: const updaters = [ { actionType: "chesschessch::setstat", // updated with current contract account name updater: updateMatchStatus, }, ] App.js ...


1

You definitely should not use RAM for binary data unless it's literally very few bytes. The RAM cost will be prohibitive. And just imagine it in scale: the current available amount of RAM can store only a few HD videos. It is my understanding that, whenever you need binary data, you use some third-party way to store the data itself, and just store and URL ...


Only top voted, non community-wiki answers of a minimum length are eligible