Hello! It has been a while since I posted last. Almost a year, but not quite! Lots of things have been happening on the Flow team.
In case this the first time reading one of my posts, I am a smart contract engineer on the core Flow Blockchain Team. The past year has been crazy, and we have so much more in store for everyone! Here are some of the things that my team has done in the past year and some that we’re still working on:
Enabling Epochs on Testnet and Mainnet
Epochs are the week-long periods where the node identity table is set and nodes prepare for the next epoch while running the network. The core logic of this part of the protocol is handled via smart contracts and those smart contracts were all deployed and enabled on testnet and mainnet! Now, almost every part of Epochs on Flow runs automatically! That, plus the milestone that the community controls more consensus nodes than the Dapper Labs team, are huge milestones in the decentralization of Flow.
You can learn more about epochs here:
Epoch Preparation Protocol
The epoch preparation protocol defines how information about the next epoch is determined and propagated to the…
docs.onflow.org
NFT Metadata Standard
This is an accomplishment we are all very proud of. Three community members that have no formal affiliation with the core Flow team submitted a proposal for a generic standard that allows NFTs to return important metadata about themselves through a standard interface. I think the proposal is something that every Cadence developer is familiar with, because it really illustrates what we can accomplish as an open source community, and is just a really well designed and written proposal:
flow/20210916-nft-metadata.md at master · onflow/flow
This proposal will make it possible to create generic solutions that will interoperate through views and not hard-coded…
github.com
The standard has been deployed to testnet and mainnet and projects are already using it to more easily interoperate! We’ve also defined a few of the standard structs, otherwise known as views, that are used to return certain subsets of data. There are still more to add though, and anyone can submit a proposal for a standard view! Check out the NFT README for more information about how to integrate views to expose your NFT metadata and join in on the discussion about proposals that are currently open!
Secure Cadence (BREAKING CHANGES coming soon!)
One of the most limiting aspects to building on Flow today is the requirement that all smart contracts undergo a security review before deployment on mainnet. Our goal is, and always has been, for mainnet deployment to work like testnet deployment: When you are ready, go for it!
Secure Cadence is a milestone that the Cadence team has been working on for a long time. It fixes a lot of issues with Cadence, adds some super useful new features, and even includes a full formal security audit that a well-respected security firm is completing right now. You can read more about the motivations behind the milestones here:
- Announcement of Stable Cadence
- Update to Secure Cadence
- Breaking changes to be aware of (coming likely in June!)
Now that the changes will be coming very soon, ALL Flow developers need to read the documents above and follow the steps to see if your contracts are broken by Secure Cadence and if so, to be ready to deploy the fixes when the upgrade happens. It is safe to assume that one of these changes will affect your contract. 🤷♂
Thats just a few of the things that we’ve worked on in the past year, but lets get to the main topic!
Big Changes Proposed for the Flow Fungible Token and Non-Fungible Token Standards
The main thing I want to mention is a forum post that I just made. If you’re a Cadence developer, you probably use either or both of the Fungible and Non-Fungible Token standards, and you probably understand that they leave a bit to be desired.
We have learned so much in the past three years since we designed the original ones, and we are nearing the end of the window where it will be possible to upgrade them, because with the Stable Cadence milestone, which could probably happen before the end of 2022, there will no longer be and more breaking changes in Cadence! We believe that even though the upgrade might be a bit difficult for developers right now, the benefits of using a more efficient and more powerful standard will pay off extremely well in the long term. We fully expect Flow and Cadence to be around forever, and so now is the most important time for us to set up ourselves and future developers for success.
The forum post lays out a proposal to update the standards to their final forms. You can find a lot more detail in the post itself, where I lay out the issues with the current standards, the proposed changes, and example code for what we think the new standards and implementations will look like. If we get good feedback from the community, we’ll move forward with a formal Flow Improvement Proposal and we will also start writing the code for the final versions of the standards!
Here is the post:
Streamlined Token Standards Proposal
Streamlined Token Standards Stable Cadence refers to a major milestone in the evolution of the Cadence programming…
forum.onflow.org
Feel free to comment on the forum post or here with comments and questions!
Conclusion
I hope you find the changes as exciting as we do! As usual, please reach out to me via one of our channels if you have any questions or suggestions!
Flow Discord: https://discord.gg/flow
Flow Forum: https://forum.onflow.org
Flow Github: https://github.com/onflow/flow
See you next time! 👋