Updated the code to compile with eosio.cdt version 1.6.1.
I finally got it working nicely! Parsing the token symbol in the action parameters was especially complicated.
The other solution posted has a couple of issues that will prevent you from clearing all the RAM properly:
It doesn't delete the stat table, leaving there some info about the ...
RAM is there for speed, if you start swapping, performances degrade instantly.. you won't be a very good producer if you're too slow.. On a saturated network, your blocks will always be smaller than the other producers.. I wouldn't want to be in that position :)
Users of the EOS network will not require any holdings to interface with dApps.
As you mentioned Airdrops are certainly a benefit of owning EOS, many companies are using this as a way to circumvent the ICO restrictions by the SEC and also by the large tech companies banning ICO advertisements.
Once the Everipedia airdrops ends, there will be more, ...
A producer who does not maintain similar performance to other producers will fall behind and miss blocks. Also, under the subjective billing for resource usage this producer will cost users more from the CPU bandwidth than other producers. This will cause them to rapidly lose votes.
I don't know how you calculated your contracts RAM consumption, but the devil lies in the details.
Using an index is always connected to sacrify some memory for speed. This is a well researched database topic. An index is an optimized datastructure with some overhead which organizes data records e.g. in an tree like structure. You can read more ...
Usage of RAM for an account:
$ cleos get account <account_name>
Maximum RAM of the network (max_ram_size):
$ cleos get table eosio eosio global
Unused RAM of the network:
$ cleos get table eosio eosio rammarket
The standard process for dealing with Block Producers (BP) who aren't meeting the expectations of EOS users is to rescind votes from the producer and give them to another candidate producer. When the next producer election occurs, if enough EOS users have rescinded their votes from a BP, they will be removed as an active BP and replaced by another BP who ...
According to Dan Larimer's Medium post, they determined that users who acquired cheap RAM would have no incentive to release it if they weren't using it since there was no financial incentive to do so. By switching to a market-based approach, holders of staked RAM are now incentive to "sell" any RAM they aren't using on the market, which makes it available ...
Technically depends on whatever smart contract you'll use for the tokens however I'll assume you're using the eosio.token contract.
You can sell this RAM only if you're able to unstake it, you cannot unstake RAM if it is currently being used, it is used in the multi-index containers which each row costs a portion of RAM.
In the eosio.token contract, ...
There could be benefits yes, depending on which dApps a user might interact with.
It might be possible that a dApp will require a user to stake tokens to the dApp to power it, and/or for storage, either for access, or to gain access to additional features/capacity.
This will depend on the business model a particular dApp chooses to adopt of course, and ...
confused00 should have made this response as he/she is correct.
RAM must be freed before you can sell it.
For a dev this means you have to release your claim on the RAM to sell it
For an end user this means you need to see how the application you're dealing with has consumed your RAM and execute the command that is hopefully there to "free" that RAM so ...
If you'd rather not want to use the command line or a wallet, I built a tool that lets you buy more RAM using credit card or crypto (Bitcoin, Bitcoin Cash, Ethereum, Litecoin).
The tool is here: https://eos-account-creator.com/buyram/
I hope it's useful to some people.
If there is no action for clearing the row from the table given by the contract, then it will not be redeemable. If this is of concern, you can look for the close action on contract before interacting with it.
quota = 92.66 KiB = 92.66 x 1024 Bytes = 94,883.84 B
ram_bytes = 93482
diff = quota - ram_bytes = 94,883.84 - 93,482 = 1,401.84
This extra ~1400 bytes seems to be the "gift" after the "EOS AccountGate" incident. :)
On Sep-06–2018 at 13:36:41 UTC, EOS New York approved EOSIO contract update v1.2.1 along with 14 other Block Producers.
In fungible tokens you track number of tokens per an account.
In non-fungible tokens you track individual token per account.
The latter is the only way to do non-fungible tokens - you need to track an individual token, as it would not be non-fungible otherwise.
You cannot compress the memory cost beyond account:token id pair, so there is no way to reduce ...
Unfortunately, as of now, there is no easy method of achieving this. One must check all actions sent in the past and look up if any of the contracts that they interacted with use their RAM. To free that RAM, one has to check the ABI of the contract to see if the contract provides any way of freeing up the RAM. Unless they do that, there is no way to free the ...
Maybe no simple way, because it may cause transaction timeout, you must delete the record one by one, and control the delete number. I think you could have one action on chain, and an execution batch or script offline to finish this work.
There are several ways to deal with "lost" RAM. This is all new and might change in the future.
RAM cost is determined by free market forces using a bancor algorithm to keep it liquid.
Currently, the short answer is 'Yes', the RAM taken up for account management is locked.
If RAM will be very expensive, it will incentivize ways to free this RAM.
RAM itself ...
Looks like the 3rd party must be signing the transaction, there is no way to delegate the permission if I'm reading this right
Side-chain establishment will be determined by price inflation If at a certain point RAM exceeds average price in comparison to other chains.
I suggest you this video by "The Awakenment" for extra information.
RAM is provided by the block producers; they own the hardware. When dapp developers or users require RAM, they need to stake EOS to be allocated that RAM. If they no longer need the RAM, they can unstake the EOS and get it back, from what I understand.