Build on EVM 💪

Recorded: May 17, 2023 Duration: 0:31:28

Player

Snippets

Welcome, everyone, to today's Twitter spaces with Shadyum on Build on EVM.
We'll be joined with Sandeepan, who is also DevRel at Shadyum, and we'll be talking about EVM, basically, and everything that goes into it.
What does it mean? And what does it mean when we say Shadyum is EVM compatible? And also, although in the broader term, what EVM basically means when someone talks about EVM dApps or EVM blockchains, and for a developer, how important or how easy it is or how difficult it is to build on EVM.
We'll get started in the next one minute.
Hi, Sandeepan. Welcome to the Twitter spaces.
Hi, Sandeepan.
Thank you for having me.
Yeah, I think when we were thinking of the Twitter spaces, you seem to be one of the, I think, prominent speaker guest for us, who has been building on EVM for the last, I think, four years? Or is it more than that or less?
Yeah, I think it's around four or five years. I started my Web3 journey with EVM itself, so.
Oh, great. So when, I think we will, it will be a free-flowing, I'll start with questions, but it might be just talking about your journey also in between.
So when you first heard about EVM, I think when your Web3 journey started, what was your first impressions on it? Was it like learning a new language or, I don't even know, because EVM is not a language at the end of it.
So what is your first impression when you are a Web2 developer and when you hear about EVM?
Yeah, I think at the beginning, the concept is very interesting when we think about a decentralized machine, sort of a computer running in every other full nodes.
Like, so that concept was, like, very interesting coming from a Web2 background where everything is being hosted in a particular cloud server or something.
So, and, like, I was also curious on how that execution is happening when there are so many other interlinked non, like, one node doesn't have any awareness about where or what the other node is.
Like, like, like, like, technically they have the communication, but they're not directly interlinked, or like, they don't know the identities of those.
So I think in that case, I think having a global state machine, which is EVM, I think that was an interesting concept.
So, virtual machines, I think, as a developer are pretty common.
So, can you give an example of, for us, like, for everyone who's here, whether, I'm pretty sure there will be people who are non-developers, what are virtual machines and why does EVM is anyway needed?
Yeah, EVM, like, virtual machines are sort of a sandbox environment inside a computer in which, like, it behaves as an entirely separate computer and, like, you can spin up multiple of those instances.
So, that's basically what a virtual machine is.
And basically, on how EVM is being implemented, each and every full node, in case of, like, a blockchain, like, the blockchain which first came out with EVM, Ethereum, in that case, each and every full node had a version, like, had a complete version of EVM, which compiles all the code.
And that's the same, similar thing in Shardium itself, like, each and every validator has a copy, a machine, which knows how to execute the smart contracts.
So, that's basically what a virtual machine is, a separate closed-door entity, which can, which act as its own computer itself.
I think this is one of the big requirements for anyone to deploy smart contracts, because they would want to test or even deploy applications, they would want to test it, right?
Yeah, and the important thing is, like, it being safeguarded from one another.
So, for example, in case of EVM, since it's so isolated from one another, like, each of those computers, we can say virtual machines are isolated, they provide you an isolated environment.
So, if a particular smart contract has some kind of a bug, it won't take down the whole network in itself.
So, it's an isolated, if a particular smart contract has an issue, like, exploits will happen with a particular smart contract.
It won't take the, it won't necessarily take the whole network down.
Like, it's, it's a very generic case, sometimes it may, but in general, it, like, that's the most cases in which, like, since those are isolated machines, they have the ability to work independently, and make the computation independent.
That is very important.
And now, even though EVM, basically, in full form, it means Ethereum virtual machine, we are all aware that it expands beyond EVM.
So, what would be a real, a good definition for EVM?
Yeah, I think, I think that's the, like, the full form of EVM itself is Ethereum virtual machine.
It was first launched with the Ethereum blockchain, and it's now a very popular, like, network state in which many popular chains use it as a base layer for computation.
So, yeah, I think that's, that's basically an overview of what EVM is.
So, like, Shadyang is building from scratch up, and any blockchain, which is building from scratch up, how do they decide to choose EVM, or to build on EVM, and what other options do they have?
I think at this point of time, there are a lot of options, which wasn't even two years ago.
But, like, a majority, you will see a majority of the blockchain sticking to the EVM space, because it has the most mature ecosystem, the most number of developers available, the most number of tooling.
Like, it has matured enough and has seen, has gone through many tough times, which has helped to evolve it.
So, it's a tried and tough and tested kind of an environment.
And that's why most new blockchains prefer to, like, if you want a large accessibility, like, the EVM is the way to go.
So, just for an example, since I'm pretty sure you would have, you are aware about VMs in any kind, like, in Web2 world also.
So, what is, like, EVM is the most popular right now, and, like you said, it is well-tested with, like, tough times and all.
So, is there any equivalent in Web2 world, even if multiple equivalents, where we can say that these are well-tested?
Equivalent in Web2 world, in which sense?
So, like, preferable environment for developers to build upon.
Okay, yeah.
So, that's the whole case, right?
The difference between Web2 and Web3.
In most of the cases in a Web2 world, like, you won't necessarily need to think about the environment at that level,
because there are multiple languages possible, which are tuned to whatever need you have.
You will go for C Sharp if you want to build a game, or you will go something like C++ or Rust if you want to have deeper level access to the hardware.
So, those environments provide you, like, so you can choose and tune, because the flexibility is the computer is not distributed,
the machine which is, it's not distributed, it's, like, you can compile your own code and run own code in your own machine,
and then you can host it on a cloud platform as a centralized tool.
So, in that sense, it becomes easier and gives you much more flexibility, but that's the flexibility which we right now don't have,
but we are seeing more and more, like, advancement in that in the Web3 space.
Okay, yeah.
So, yeah, I was looking for an equivalent and I couldn't find, so that's a great observation that it is not needed in Web2 world.
However, it is very important to have a distribute, because the blockchain is distributed, to have something where all developers can,
anything that goes on a Web3 world goes on a blockchain, and it can affect everything.
So, it's important to test it out.
So, now, when we say Shardium is AVM-compatible, what does it mean in a real-world scene?
Is it just means that Shardium developers, or is it related to Shardium blockchain code,
or is it related to people who are building on Shardium blockchain,
they need to test their smart contracts and applications on AVM environment?
Yeah, so it is basically on the smart contract level, since Shardium is an EVM-compatible blockchain,
like, if you write a smart contract in Solidity or Viper, like, you can directly compile it,
like, you can directly run your logical programming on top of Shardium,
and EVM acts as an execution layer, which computes your code,
and, like, which ensures that the logic you are coding is executed on the Shardium blockchain.
So, yeah, and the Shardium protocol in itself is a different part,
and EVM in itself is a different part.
The Shardium protocol only relates to how the nodes talk to each other,
how the transaction is being done.
The EVM under the hood, like, what other EVM implementation has been,
it has been on the level on, like, just compiling the code,
and just getting that bytecode into ones and zeros,
and that being computed, like, having the final computation
by each of those validators.
So those are two different.
So you can have different kinds of consensus implementations,
just like you have in other layer-1 blockchains,
but at this other level, inside level, everyone is on the EVM.
Like, that platform is common.
Understood.
So, like, EVM is not actually about how the blockchain is being built
at a protocol level, but how the applications on top of it will be built.
And so now coming to, because Ethereum is one of the most popular L1,
and also Ethereum is how EVM started,
and most of the mature developers who are using,
or let's say EVM developers,
would be building on Ethereum,
and they might already have applications or smart contracts on Ethereum.
So for them to migrate their applications
or deploy their applications,
same applications on Shardim,
what do they actually need to do?
That's the very interesting part, right?
So that's the whole advantage of being an EVM platform
is, like, they don't need to change a single line of code
in their smart contract.
Like, the smart contract will remain just the same.
The only change they need to make while deploying,
it's just the deployment process that's different,
using Shardim's RPC and, like, using Shardim's,
like, you need to make sure you have enough SHM in your wallet
you're using to deploy.
Like, if these two criteria are made,
like, on the smart contract level,
there is not a single line of change needed.
And you have done it.
You have deployed.
I am, I think so, on Ethereum, on Shardim,
you would have deployed on other EVM chains.
So your experience has been that it's the same process.
Just the deployment is a different path.
And have you used any other,
I don't even know what other VMs are in the blockchain
and distributed world,
but from your experience in the last four years,
what advantages is it on building via EVM?
Like, one of the advantages we already discussed is
it is mature and it has been through the tough times.
Are there any other advantages over other VMs on blockchain?
So there are many, many recent VMs which came out after Ethereum
and, like, those, because obviously they will have some sort of an advantage
because they have seen EVM's evolution.
And based upon that, they, right from the beginning itself,
just like what Shardim is doing regarding the scalability,
since we are a new ecosystem, we have the power
because we have already the knowledge of what happens
and what are the issues.
Like, from day one itself, we can get those solved and move forward.
So just like that, other eco, like, there are other, like,
ecosystems using different kind of, like, virtual machines
or, like, the most popular other ones is, I would say,
it wasn't from the whole Cosmos ecosystem.
So that is also a very popular kind of execution layer.
So I think that's the whole thing.
Everyone, both parties have its own advantages
and disadvantages.
Like, EVM will give you much beginner-friendly,
like, resources are much more available.
And then, on the other hand, there are other advantages
for newer ecosystems.
But, yeah, it's an overall what you need
and what's the easiest part for you.
Here, I was just thinking while you were answering this
that one of the most important part would also be users, right?
For a developer, if they are building an application,
they need to know where the users are.
And if the users are on an EVM chain,
it will be more beneficial for them
to build on an EVM chain, correct?
Yeah, that is, like, it becomes easier on the,
yeah, correct, on the user level also
because you have the same,
you use the same MetaMask wallet
which you use in other chains by using Shardium.
So you didn't have to sign up for a new,
like, download a new extension,
create a new kind of a wallet.
So those are some little advantages
which gives you if you are EVM-based from D1.
And, like, the more advantages,
it's from the developer's side.
I think EVM, there are,
EVM at a deeper level can be very tough
and very, like, thorough.
But as a beginner-friendly language,
I think, like, Solidity is good enough
as a beginner-friendly language
if you have context of, like, JavaScript
and, like, a little bit of programming context
instead of picking up something like Rust
which can have a high learning curve.
So I think that's the biggest advantage of EVM.
But, like, as I said,
like, it's not that EVM cannot get complex.
The more you get into it,
the more it will,
you will find how complex it can become
for complex applications.
But as an entry-level beginner,
I think EVM is very big enough.
And I have heard that you are a fan of Rust.
How about that?
I would say, like, Rust is pretty good
on when you want to have a control on the hardware.
But as a developer, if you're not doing,
like, if you want to have that memory control,
if you want to have that CPU control
for something making very efficient programs,
then at those cases, Rust can be good.
But if I just want to execute a logic,
essentially, I wouldn't pick up something like Rust.
So that's the whole thing of abstraction.
Like, how much do you need to get your work done?
If it can be done on the high-level language,
like, Rust is also high-level language,
but if it can be done on the overview
or on the execution side,
why would you need to go in such a depth?
So that's the whole comparison.
True, true.
So now, since you spoke,
like, one of the benefits of Rust,
can we talk about
are there any limitations with AVM right now
that also are enabling new VMs into the picture?
So what are the current limitations?
I think the limitations,
like, it will depend on how much, again,
like, how much access you want to have.
For something like smart contracts,
you don't need...
Also, like, my bad on mentioning
that Rust is a high-level language,
and Rust is a low...
That's the whole concept of Rust
being a low-level language
since it can access the,
like, the memory and the computation.
So that's the whole thing.
Like, if you need that much access,
then only you would go for something like those.
But on a smart contract programming level,
you don't need that much access
to the actual node,
like the validator hardware.
As a smart contract developer,
you just want to execute your logic.
So in those cases,
I think something like AVM excels.
And I'm pretty sure
since AVM is most popular right now,
and of course,
the future might change,
it is possible that AVM itself
becomes something else,
has a lot of different things into it,
or there might be something better
that comes into the picture.
But for now,
pretty sure there is a lot of documentation
available on the internet on AVM, correct?
So for all the developers
that are currently listening
to this Twitter spaces,
which also,
even Shadyum documentation
and which other documentation
would you recommend them
to read about
in their developer journey?
I think as a blockchain developer,
initially,
if you're an entirely beginner,
I wouldn't recommend you
going very in-depth
on how AVM works.
You just need to ensure
how you can make AVM work,
like the logic,
understanding the syntax
of solidity on those levels.
And then only after that,
I think the level achieves
when you want to do
like security implementations,
like you want your smart contracts
to be secure.
And then there are optimizations.
You want your smart contract
to consume as less gas as possible.
In those levels,
like knowing how the AVM works
will help you.
Otherwise,
like as a beginner,
I think only getting to know
how to make AVM work
is good enough.
And so any developers
who are currently building
on Shadyum
or so what can you suggest
them to get started with
on a Shadyum documentation part
where it will be easier
for them to implement
their smart contract?
Yeah, I think on the AVM level,
we haven't added anything
from our end
because I think
there are already
in the Shadyum documentation
because I think
there are already
a lot of good resources
available online.
like definitely
from the Ethereum foundation team
in general about AVM.
So if you see
the Shadyum documentation,
we haven't mentioned
a lot of details
on how the AVM
actually works
because I think
as an AVM developer,
most of the developers
building on Shadyum
are migrating
from other EVM chains.
So like there's
a sort of an understanding
that those developers
are already familiar
of the environment
and also I think
as I mentioned,
there are other
good resources about it
and I think
definitely
Ethereum foundation's websites
Ethereum white paper
like the solidity
documentation
also goes through
how AVM works.
So definitely
that can be
a good resource.
And yeah,
I think these are
the top resources
that come to my fight.
I think the top resources
are to cover everything
for anyone
who's learning.
They might not even
have to go through
you know,
50 different resources
and the top resources
would have everything.
we'll go to
a couple of questions
which we'll end with
but before that
I want to just
have this one
question about
your personal experience
whenever you have
you have been using it
for the last
four years and all
which were your
best moments
where you thought
that okay
maybe this was
a great experience
building on it
building with it
or where you
found that
you found out
something interesting
didn't think you would.
the most interesting
part I think
like coming from
a Web2 background
when you understand
that like
if you write
Solidity code
like you used to
write C++
you will find
that you are
going to mess up
important metric
on writing
a blockchain code
or a smart contract
there is no
infinite computation.
computation is
money literally
in case of a
blockchain
so if you
execute something
finding the
most efficient
way to do it
is going to be
the trickiest
that's the
biggest mind
like change
which any
developer will
first see
whenever they
write a smart
like you just
five for loops
at the same
time like
follow up
inside follow
up and just
like that
will be like
for all your
users and
while you
deploy the
smart contract
with limited
space and
computation
forces you
developer to
make your
code ultra
efficient
that's the
biggest change
developer
smart contract
developer will
that also
makes you a
better developer
at the end
of the day
that forces
you otherwise
it's literally
going to cost
you money
true true
and if the
smart contract
transactions are
expensive
it will be
very hard to
application
very great
motive for
every developer
journey to
become better
and excellent
amount of
so Sandeep
and now we
have reached
at a stage
where EVM
is popular
and yet like
there are
VMs which
are building
from scratch
the solutions
which EVM
last four
maybe they
have that
future do
decentralized
or distributed
whether you
something else
do you see
like multiple
popular VMs
which will
or interoperability
how do you
also mentioned
initially that
like something
like a new
ecosystem with
a new kind of
a virtual
machine or how
the computation
works under
something like
those will
benefit because
they are new
and because
add those
features from
the day one
but something
ecosystem
like benefits
developer
if you just
go through
the Ethereum
foundations
GitHub repo
daily changes
they make
like that
seeing that
you will see
people are
putting time
and resources
and some of
developers in
the ecosystem
are putting
their time
and resources
into building
this even
like many
people like
the people
who think
is outdated
would argue
that like
it's slow
it's been
built in a
period where
it didn't see
that much
like transactions
but you will
also see that
EVM has gone
through a very
huge process
of evolution
it has not
that's the
important part
like there's
going to be
language soon
solidity like
like solidity
going to be
you interact
will change
drastically
throughout
that is I
think the
advantage
ecosystem
and being
developer
this is a
great future
for all of
blockchain
developers
from what
engineers
and Vitalik
for creating
for regularly
evolving it
and making
it a place
where more
developers
top of it
and growing
the developer
ecosystem
for a whole
decentralization
are continuously
working towards
improving it
day by day
pretty sure
EVM is also
open source
like everything
think anyone
improvements
when they
that's the
important part
ecosystem
like anyone
and contribute
it has been
one of the
like anything
related to
and Solidity
these are
applications
web3 space
more error
more eyes
there are
as I said
more developer
working on
thank you
Sandeepan
for taking
us through
it actually
implementation
developers
the future
is bright
if you're
Sandeepan
many eyes
are there
where the
engineers
are making
make your
applications
more scalable
start deploying
have already
any other
it should
no effort
developer
Sandeepan
definitely
go through
resources
no amount
of videos
or tutorial
substitute
underrated
information
something
recommend
thank you
Sandeepan
back with
meanwhile
questions
Sandeepan
the questions
questions
available
engineers
available
like they
are building
the testnet
even though
they might
not be as
available
but if they
your questions
in Discord
Sandeepan
on Twitter
and they'll be
answer you
thank you
and we'll
again soon