What is 'contract upgradeability' and which pattern is most commonly used to achieve it?
-
A
Redeploying a new contract and migrating all state; direct redeployment
-
B
Delegating calls to a swappable logic contract via a persistent proxy; the proxy pattern
-
C
Storing code on IPFS and updating the hash; content-addressed storage
-
D
Using Ethereum's built-in upgrade opcode; UPGRADECONTRACT