Quorum – How to Address Oversized Data and Code Size Limit During Contract Creation

contract-deploymentquorum

While creating contract, I am getting the error "oversized data" during contract creation.

Other than modifying the go-ethereum code file to increase the maxCodeSize, or splitting the contracts up, are there any other workarounds?

Why should there be a contract code size limit in a private blockchain in the first place?

Best Answer

I fixed this issue by increasing the transaction size to 64KB in tx_pool.go

DOS is less applicable for private Ethereum networks such as Quorum.

// Heuristic limit, reject transactions over 32KB to prevent DOS attacks

// UPDATED to 64KB to support the deployment of bigger contract due to the pressing need for sophisticated/complex contract in financial/capital markets - Nathan Aw

if tx.Size() > 64*1024 {
    return ErrOversizedData
}

References:

https://github.com/nathanawmk/quorum/blob/master/core/tx_pool.go