NEO Devs Implement Bold Change, Adjust Final Scaling Tweaks

Neo devs have been active the past few months. Via the bug bounty program, the team learned of a Denial of Service bug allowing congestion of the network, the team has taken swift action in confirming the bug and releasing a patch. Additionally, in the latest upgrade(2.9.0), the block size was increased and the block time was decreased in further efforts to relieve network congestion. However probably the most interesting change in the last update sets the NEO platform apart from peers—implementation of the “actor model”.

The actor model is a system of computation that allows increased concurrent processing, allowing for increased speed and efficiency on the blockchain. Instead of executing contracts sequentially, you can use multiple cpu cores and nodes to process transactions. This means the execution can be broken up into parts to spread the workload, utilizing the full potential of the cpu or network. The actor model system has a set of “actors” that can propagated in the network and distribute tasks based on common rules.

Or, a more technical definition of the concurrency problem from Neo News:

In a multi-threaded system such as NEO, the caller does not hand control of the program over to the object. This can result in situations where multiple objects are called, but both of those objects (that are executing in the background) try to access another item in the system at the same time. In this example, a solution is required that allows both objects to access the shared item, but without one of them corrupting it while the other is trying to read from it.
To get around this issue, these systems may use locks to prevent objects accessing a particular item until execution is complete. During the lock, if one object is writing, other objects are prevented from reading the data until writing is finished. Although this ensures that the states are not changed arbitrarily, it also limits the performance and concurrency of the network because objects need to wait around for the thread to become accessible again (known as lock contention).” The actor model provides a way around this problem.

To deal with any crashes in this system, one actor is delegated to reset others to the most recent stable state. Generally, the system allows for crashes and has a variety of methods for resolving them, it’s a “self healing”, flexible system. Currently NEO is one of the only blockchains that have implemented the actor model.

Finishing Touches

Some other finishing touches have just been proposed on Github with regard to network throughput while still maintaining NEO’s advantage of offering some free transactions:

“The NEO’s main difference is the free network, we can’t lose it. We should increase the free transaction size from 20 to 50 We should add a little PoW for free transactions”

“We should be able to remove TX from the pool, if it is a free TX and is waiting for more than X blocks (TBD) We should determine if is a free TX if his fee is > 0.0001, not 0.00000001”

shargon

The proposal will likely be implemented, as it has garnered support from other prominent devs.

Leave a Comment