NEO Global Development (NGD) has announced that the SimplePolicy plugin, responsible for filtering invalid transactions according to the network fee policy, is now mandatory.

All entities that operate neo-cli nodes, such as developers, exchanges, explorers, and applications, are encouraged to update to the latest node version, v2.10.2, and to ensure that the SimplePolicy plugin is correctly installed.

SimplePolicy

The SimplePolicy plugin is responsible for specifying various configurable parameters for the NEO network. These parameters, which define the rules by which transactions or blocks may be deemed valid, are currently set as follows:

  • MaxTransactionsPerBlock – 500 tx
  • MaxFreeTransactionsPerBlock – 20 tx
  • MaxFreeTransactionSize – 1024 bytes
  • FeePerExtraByte – 0.00001 GAS

NEO transactions that have been created and broadcast to the network are relayed between public nodes, such as RPC or P2P nodes, which propagate transactions until they are received by consensus nodes where they may be validated for inclusion in blocks.

NEO core developer Igor Machado Coelho of NeoResearch recently shared a post outlining this mechanism, using images to simplify the explanation.

If public node operators do not have the correct policy settings, invalid transactions may be stored in node mempools and continuously broadcast around the network. With the correct policy settings, ordinary public nodes are also able to properly validate transactions according to the rules accepted by consensus nodes. This helps to ensure that the NEO MainNet continues to operate smoothly.

Download and Installation

The SimplePolicy plugin may be downloaded here. The downloaded file should then be unzipped and placed within a “Plugins” folder within the neo-cli directory. If no “Plugins” folder exists within the /neo-cli/ directory, it should be manually created.

After installing the plugin, node operators can verify that it is operating correctly by issuing the “plugins” command into the neo-cli client command line. The command line will reply with a list of all correctly loaded plugins.

In NEO3, the active policy settings will be defined within a native contract. It has been suggested on the NEO GitHub that in the interim, policy settings should be directly included in the neo-cli installation.