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


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

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

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


1

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


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