October '22
Polkadot Blockchain Academy: Jan/Feb '23 🎓​
In July we spent some time in Cambridge on a secret mission. At the time we teased this in our monthly update and said we'd give more details soon. Well, the cat (or rather squid?) is out of the bag!
We were holding lectures on WebAssembly smart contracts as part of the Polkadot Blockchain Academy! This was the first, intentionally low-key, run of a Polkadot education program with an academic focus. This first run was low-key to smooth out the edges and verify if our idea of a curriculum worked out in the real world. It did and there will be many more academies! Starting with the next one, which is happening in January and February 2023 in Buenos Aires.
We will also be giving lectures there again! You can find more details on http://dot.li/academy.
Astar ported Uniswap v2 to ink! 💱​
Astar has published a showcase Dapp built with ink!: a Uniswap-V2 DEX. This is amazing and we can't wait to see where this is going!
They are working on a UI for the DEX as well. You can find
the repository here:
AstarNetwork/wasm-showcase-dapps
.
Release Updates 🆕​
We've published a release of ink! v3.4
this month.
For ink! v4.0
and cargo-contract
v2.0
we decided to shift our
target release date a bit, to January 2023. There are a number of
reasons why we decided to do this:
- We have made a number of breaking changes and want to wait until popular
user interfaces (like
polkadot-js
orcontracts-ui
) support those. - We want to have a release candidate out for at least some weeks to give everyone the chance to already upgrade tooling and provide feedback.
- We have an audit going on and would ideally like to incorporate more of the results.
A breaking change that has formed in the last weeks is that we
will have to remove ink::env::random
.
This function allowed contract developers getting random entropy.
There is unfortunately no way how this can be done safely enough
with built-in Substrate primitives on-chain currently. We're
following the recommendation of our auditors to remove it.
The alternative right now is to provide random entropy off-chain to the contract, to use a random entropy oracle, or to have a chain-extension that does this, in case the chain has a possibility to do so.
We hope to bring this function back in a future release of ink!, the best hope right now is that it could come back with Sassafras, a block production protocol for future versions of Polkadot.
Conference Season 📢​
Many from our team have been on the road in the last weeks. You might have met us at DappCon, DevCon, or EuroRust.
There's more to come and a number of us will be at sub0 in Lisbon at the end of November '22. We have two events scheduled there, a talk and a fireside chat. Come by and talk to us if you're there!
Blog Post on wasm-opt-rs
🙌​
Brian Anderson wrote a blog post on his
Web3 Foundation grant
to get rid of wasm-opt
as an external dependency for cargo-contract
.
This was a contribution that we looked forward to a lot. External dependencies cause so much user friction. For once, it's another manual step in the installation process, which is not always straight forward and different for each operating system. There's other issues too, we don't have control over which version of the dependency is installed on the local system and have to throw errors to the user, causing more user friction.
All of this is just solved now by having wasm-opt
be a direct dependency of cargo-contract
.
The blog post is an interesting read, you can find it on Brian's blog here.
Solang Solidity compiler incubated into Hyperledger Foundation 🎉​
ink! contracts are executed by Substrate's pallet-contracts
;
besides ink! there are two other languages that you can use to
write smart contracts for this pallet: ask!
(Assembly Script) and Solidity via the Solang compiler.
Solang supports different blockchains as compiler targets, one
of them being pallet-contracts
. Our colleague @xermicus
is working full-time on this Substrate backend in Solang.
The project has now been incubated into the Hyperledger Foundation, hosted by the Linux Foundation. This is a big recognition for the project!
In ink!, supporting a symbiotic interaction with Solidity contracts is an important part of the puzzle for us and we're looking forward to the next stages of Solang.
More details can be found in the announcement blog post.