The Enterprise Ethereum Alliance Mainnet Working Group created a survey to solicit input from enterprise developers working on Ethereum applications.  The survey was promoted by email to EEA mailing lists, and on Twitter, from November 2020 to January 2021. Here is a summary of the results and responses to key questions.

  • There were 42 respondents.
  • 73% of the respondents identify as an enterprise software developer or architect working on Ethereum applications.  Presumably the others are developers who do not associate with the term “enterprise.”
  • 72% of the respondents are working with Ethereum Mainnet; 74% are working with private chains; 51% are working with both.

Notable responses to “Which of these do you think are most in need of improvement, and in what ways?”

  • Solidity should have ready-made examples of supply chain and DeFi and other applications
  • Solidity: bring on-chain identity, ZKP and Homomorphic Encryption to be useful for regulatory compliant security assets
  • Solidity: We should have a webflow like software
  • Transaction tracing and Solidity debugger
  • [Bring] Web3js up to date with solidity features
  • Something like webflow
  • Stability [of] Truffle Ganache
  • Truffle, to compile each file with different compiler version, VSCode better debugger plugin.
  • Network setup, e.g., start N nodes with basic setup for privacy, permissioning – Besu is working on it but needs improving to be awesome for enterprises
  • Remix, so widely used and yet has so little resources dedicated to it
  • Smart contract coding for kids (similar to Scratch Studio)
  • Web3j, not well maintained
  • My current pain point is complete abi2 support in Web3j
  • [Support for] Rust
  • #tx/sec
  • None, but optimistic rollups to execute contracts on L2 are essential
  • Support of nodejs wrappers for quorum-based evms
  • The documentation tools need improvement. Integration in one of the major documentation-generating tools would be nice
  • IPFS browser integration
  • IPFS, or any other enterprise-grade, production ready storage solution
  • IPFS: Protected access; all the other is REST…
  • Interoperability between different Blockchains
  • Kaleido

Notable responses to “What tools or libraries or services do you think are missing and should exist?”

  • Ease/automate building API on top of smart contracts
  • General REST-API “producer” for Smart contracts
  • [Tools for] regression testing, profiling, formal verification
  • Good debug facilities across java application and solidity would be great
  • A good visual debugger
  • Signer libraries for key stores like Key Vault, KMS and HSMs
  • Webflow, 2nd layers tools for development
  • web3j or any web3 should have separate APIs to manage a) create a transaction, b) sign a transaction by web3 or independently and c) submit the transaction to the desired network.
  • Deployment libraries and hybrid development (public testnet/local – proxied which survives recompiles).
  • MetaMask … is useful but could do with more support for developers, i.e., local RPC networks
  • JS libraries for evm’s on quorum
  • UI components
  • Interoperability libraries to perform connections another blockchain networks
  • Central open-source library of smart contracts and their detailed documentation.
  • Handling decentralized organizations
  • Rust based client
  • TokenScript

Notable responses to “What standards do you think are missing or should be improved?”

  • Shielded/confidential tokens, e.g., Aztec and Anonymous Zether.
  • Interoperability between off-chain sources
  • Best practices for: non-pegged Stablecoin and Utility token economics, handling real software products based on Ethereum (business and development aspects)
  • Privacy
  • Security standards
  • on-chain encryption
  • Ipfs alternatives, interoperability
  • Documented commitments of cash bounties for security disclosures
  • REST-API first
  • Messaging
  • KYC
  • DID/SSI support as base layer for application integrations for human, company and machine identities
  • Better NatSpec standards: https://github.com/ethereum/solidity/issues/10825

Notable responses to “What other Ethereum-related challenges do you face as a developer?”

  • High gas fees
  • Gas price
  • Gas price
  • Changing – high gas cost on public blockchain
  • Ethereum 1 scalability
  • Scalability
  • Privacy
  • Security testing
  • KYC
  • CI/CD-Automation – not platform bound (e.g., Infura etc.)
  • Nonce management for resilient architectures
  • Solidity version changes
  • Solidity has many improvements to offer in the future for date and structure management
  • Slow testnet deploy/ debug standard
  • Poor documentation, Products that don’t work as expected
  • Learning resources that are up to date
  • There just isn’t the maturity that there is with Java tools. there is still a lot of copying and pasting to deploy contracts once you are doing non-simple things, e.g., deploying a solidity contract IN the genesis file WITH storage
  • Reliability: RPCs are not that reliable from an enterprise point of view. Need more features to strengthen RPC or use open source MQs for messaging
  • Communications with other developers. Need a network.
  • Bft, private transactions
  • Issues with interactions in open Ethereum
  • Building an economic system around a decentralized application that maximizes network effects in order to prevent someone forking the project and decreasing protocol revenue or needing to develop closed-source projects

Conclusions

Several suggestions for improvements to the development tool ecosystem were made. Due to the relatively small sample size, there are no major clusters or trends identified (aside from gas price/scalability). It may be useful to repeat the survey in a few months.

High transaction fees and scalability were mentioned as challenges by several respondents. This suggests a need to educate developers about Layer 2 technologies which are intended to address these problems.