Sign In

Ale Raiczyk

CEO @ We Build It

Ale Raiczyk is the co-founder and CEO of We Build It, a company focused on transforming ideas into innovative software products. With over 30 years of experience in the industry, Raiczyk has a significant background in software development and entrepreneurship.1

Highlights

Apr 17 · linkedin

Buenas! Estamos buscando problemas que tengan sentido resolver con software, sobre todo relacionados a la automatización de tareas repetitivas. Nos ayudarías completando esta brevísima encuesta y/o compartiendo?

Gracias!

Nov 1 · linkedin

In our last project @We Build It, we've implemented some #smartcontracts. One of the requirements was to use the Diamond Pattern (https://lnkd.in/dzjbQfUE) that we've never used before.

What is this pattern about? Diamonds are modular smart contract systems that can be upgraded/extended after deployment, and have virtually no size limit. More technically, a diamond is a contract with external functions that are supplied by contracts called facets. Facets are separate, independent contracts that can share internal functions, libraries, and state variables.

Main motivations

  • A single address for unlimited contract functionality. Using a single address for contract functionality makes deployment, testing and integration with other smart contracts, software and user interfaces easier.
  • Your contract exceeds the 24KB maximum contract size. You may have related functionality that it makes sense to keep in a single contract, or at a single contract address. A diamond does not have a max contract size.
  • A diamond provides a way to organize contract code and data. You may want to build a contract system with a lot of functionality. A diamond provides a systematic way to isolate different functionality and connect them together and share data between them as needed in a gas-efficient way.
  • A diamond provides a way to upgrade functionality. Upgradeable diamonds can be upgraded to add/replace/remove functionality. Because diamonds have no max contract size, there is no limit to the amount of functionality that can be added to diamonds over time. Diamonds can be upgraded without having to redeploy existing functionality. Parts of a diamond can be added/replaced/removed while leaving other parts alone.
  • A diamond can be immutable. It is possible to deploy an immutable diamond or make an upgradeable diamond immutable at a later time.
  • A diamond can reuse deployed contracts. Instead of deploying contracts to a blockchain, existing already deployed, onchain contracts can be used to create diamonds. Custom diamonds can be created from existing deployed contracts. This enables the creation of on-chain smart contract platforms and libraries.

Tools We've found this incredible tool: https://louper.dev/ that helped us understand, visualize and execute the Diamond and its Facets.

Did you know about this pattern? How was your experience using it? #blockchain #patterndesign #coding

Related Questions

What is We Build It's main focus or mission?
How did Ale Raiczyk start her career in tech?
What are some notable projects We Build It has completed?
How has Ale Raiczyk's leadership style impacted We Build It?
What industries does We Build It primarily serve?
Ale Raiczyk
Ale Raiczyk, photo 1
Ale Raiczyk, photo 2
Add to my network