In my previous post I described the approach that we’re using on our production servers: physical RAM is larger than WAX state size, and the nodeos state is stored in a tmpfs partition.

But WAX RAM consumption is growing quite fast: thousands of new accounts are created daily, and thriving NFT market is creating new assets daily. What will happen when server RAM cannot extend any further?

I tried to run an experiment, and it went pretty well. I took a physical server with 16GB RAM and Intel(R) Xeon(R) CPU E3–1230 v6 @ 3.50GHz, …

Recent hack of EOSX Vault has added one more item to a standard security checklist in smart contract auditing. It makes sense to describe them all in one post.

1. Check the token contract

Older CDT versions did not offer a nice wrapper for apply() handler, so the contract authors needed to pay more attention on notifications. Current CDT screens these mechanics by predefined macros. Still, you can create an universal notification receiver, like:

[[eosio::on_notify("*::transfer")]] void on_payment (name from, name to, asset quantity, string memo) {...
}

this will process all transfer action notifications where your contract is either To, or From. The notification…

The WAX blockchain has grown in usage and size pretty dramatically. On May 8th 2021, 307k unique accounts have executed 51 million actions. On February 8th, it was 18k and 6 million, correspondingly.

Back in February, a typical nodeos setup would include a baremetal server with 3.5Ghz or faster Intel Xeon CPU, and directly attached SSD or NVME, preferably of datacenter grade. 32GB RAM was quite sufficient to cover the needs. The node state would be resided on the SSD storage. If ZFS is used with lz4 compression, the SSD I/O load was pretty low, less than 20% on average.

I’ve been in this blockchain space for a while, living through ups and downs in our great EOSIO ecosystem. These precious memories must not be lost, and they can actually work for the community.

So I’m starting the cc32dninenft collection on WAX and later on EOS, with three major goals:

  1. Fund the development of open-source projects that are valuable for the EOSIO community.
  2. Create an asset with a post-sale mission.
  3. Have fun.

Sales and promotions will be announced in cc32dninenft Telegram channel. More details on goals and profits distribution are on GitHub page.

The first series is celebrating the first post in this blog, and it will be issued in 100 tokens on WAX:

Stay tuned, there’s more to come.

It’s a common struggle for every dapp builder that transactions may disappear from the blockchain while their blocks are not final. A microfork, resulting in a few blocks reevaluated and newly signed, might not include the transaction you’ve already seen. It might be dropped due to congestion, or because its timeout period is too short.

So if your service is receiving or sending payments, you always need to make sure that the transaction has survived and made it into an irreversible block. There’s a number of other transactions where it’s important to track the finality.

Most services are relying on…

Dan Larimer, former CTO of Block.One, has published a draft of EOS Community Governance Proposal. There’s over a 100 valuable comments by the time of this writing, and I’ll try to summarize my own thoughts here.

  1. Even at the start of EOS mainnet history, we’ve seen a very low participation in the governance. Too few people bothered to update their BP votes or cast a vote on the global forum. With proposed EOS Community design, maybe a few hundred enthusiasts register themselves and start taking part in the governance process, but they will quickly get bothered and busy with other…

Elrond is a relatively new player on the blockchain market, offering a new and scalable platform for WASM smart contracts. In this article I summarize the differences, advantages and disadvantages between two platforms that I found while reading through Elrond documentation. As I’m mostly working in EOSIO environment, this is probably not a very objective review.

Accounts and fees

EOSIO accounts are 64-bit integers represented in alphanumeric notation. The user has a possibility to pick human-readable names. Account permissions delegate the authorization to public keys (or a combination of keys for multi-signature), and the system supports multiple ECC key standards. …

Recently I built and rolled out a Point-of-Sale smart contract on EOS, Telos, WAX, and 3 testnets. It will let anyone offer their goods and services on the blockchain, and accept payments in a token of their preference. Any project-specific token or wrapped BTC, USDT, and so on, will work.

The contract is inclusive, and it lets anyone start building their e-commerce solutions on top of it. I hope there will also be generic marketplaces where people can put out their goods for sale with a couple of clicks.

The buyer doesn’t need to do much: they only transfer the…

Automated token payments on EOSIO blockchains, especially on congested ones like EOS Mainnet, is a tricky business: transactions may fail because of insufficient CPU or NET or RAM resource, or may get dropped because of network congestion or microforks.

Typically a business that needs to send automated token payments is relying on a number of infrastructure services: it can check if a transaction is in an irreversible block by querying Hyperion or dFuse API, or set up its own Chronicle servers that would deliver such information.

My new Payout Engine is a holiday project that I wanted to implement for…

Here’s a new weekend project. I made a prototype database writer that takes all EOSIO contract table changes and writes them in a database. This allows searching through table rows in any possible way.

The source code is available on GitHub. The writer is taking Chronicle output for all table deltas and stores them in a table. the ROWS table is dedicated to one chain, in order to avoid locking conflicts. The script creates the table if it doesn’t exist. In addition, it creates two tables for tracking the reversible blocks, and to roll back in case of a fork…

cc32d9

Telegram: cc32d9, EOS account: "cc32dninexxx"

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store