Perkle Network Upgrade Complete

Esprezzo
esprezzo
Published in
3 min readApr 11, 2020

This post was originally published on our blog on February 5.

On Monday we began and completed a network and protocol upgrade for Perkle. This was a planned hard fork to enable several important new features, patches and performance improvements.

While working on smart contract templates and testing some newer Solidity functionality we ran into an issue with a new opcode only available in Constantinople and later forks of Ethereum. Specifically the EXTCODEHASH opcode (EIP-1052), which makes tasks such as checking another contract’s bytecode or analyzing and whitelisting contracts cheaper (less gas needed).

Example of opcode in use in the snippet below:

assembly { codehash := extcodehash(account) }

Because we really want to use this new opcode, and generally stay up to date with the leading version of the Ethereum protocol, we upgraded Perkle to be more in line with the Muir Glacier release of the protocol. The fork went smoothly.

Thank you to STEX for minimal downtime and mining pool owners, who were quick to update. As of publishing time for this post, Perkle miners looking for updated mining pools can go with the official Perkle mining pool or Comining.

At block 3,100,000 old clients became incompatible. If you’re managing a Perkle mining pool and haven’t upgraded your clients yet, you’ll want to do that as soon as possible to avoid mining blocks that are destined to become orphans.

The latest software is here:

Binary releases https://github.com/esprezzo/perkle/releases

Source code https://github.com/esprezzo/perkle

Here’s a list of the opcodes and EIPs included in this Perkle update:

  • EIP-145: Bitwise shifting (improves messaging speed and reduces cost)
  • EIP-152: Add Blake2 compression function F precompile (creates new interoperability capabilities for smart contracts)
  • EIP-1014: An effort to facilitate scaling using state channels and off-chain transactions
  • EIP-1052: Large scale code execution optimization (allowing contracts to check a contract’s bytecode without needing the bytecode itself, saving wasted gas)
  • EIP-1108: Reduces alt_bn128 precompile gas costs
  • EIP-1234: Reduces block reward from 3 to 2 and postpones difficulty increase (this needs to be updated in the official block explorer, which is still showing a reward of 3)
  • EIP-1344: Adds ChainID opcode
  • EIP-1884: Reprices certain resource-intensive opcodes to more closely match computing resources consumed
  • EIP-2028: Reduces gas cost for calling transaction data (improves scalability)
  • EIP-2200: Implements net gas metering (enables new smart contract storage capabilities)Rebalance net-metered SSTORE gas cost with consideration of SLOAD gas cost
  • EIP-2384: Delays Ethereum difficulty bomb

Look out for a future blog post on the smart contract work that led to this fork!

Have an idea for a smart contract-based application? Is the thought of mastering Solidity or the cost of experimenting on Ethereum holding you back? Apply to our private beta program! Participants accepted into the program get to test our smart contract tools in exchange for product feedback.

And if you’re interested in joining our community, we’re chatting on Discord; join us!

Originally published at https://blog.esprezzo.io.

--

--

Esprezzo
esprezzo

Esprezzo is building tools that make it easy for people to get and act on blockchain & smart contract data. Learn more at esprezzo.io