- Published
Which topics should give more attentions in web3(1)?
- Authors
- Name
- Tony
- @sodexx7
The uniswap first appeared in my world, which made me astonishing and excited. The back-end services behind the uniswap, which anyone can interact with, aren't based on centralized services. The tries involving the dex before uniswap have existed for a long time, but the user experiences、user activities、transaction amount of these tries have lived in a limited range. When I see the gelto(https://app.gelato.network/), my first thought is that bring the timed tasks into on-chain. All these things inspired me to feel more interested in the new world; I think mind_like people can have more fun in the new world.
That's not saying web3 must change the world. But based on the blew points, meaning and fun must exist.
- Not only the transportation and dealing with information, but also the abilities can work in the value. We can deal with any piece of information and achieve any level of infos with the program. For example, when we want a computer's introduction, we can get the CPU version、the brand、the storage... And we can also get any level of information in an institution, such as account management, IT department... I think there are more abilities and power if we can make the program work in value.
- the transactions or some info are permissions to everyone; this open source principle has been affected by the activity of the open sources.
- The composability. The smart contracts based on the blockchain have the composability feature. And this architecture for composability exists from the start.
Based on the above points, I feel like climbing a great mountain and seeing the vast plain.
But meanwhile, money makes the crowd crazy and make much noise; sometimes, even false information misleads people. In one episode of bankless, the guest I remember is the polygon investor who said a number:199.
one means 1% of the new world who are actual builders and some interesting people; 9 means.9% who are investment institutions or some individual KOL; 90% of the world are the others.
Perhaps the number lack accuracy, but these describe the essence of the phenomenon of why there is much noise. So some questions often appear in my mind. What info are noises? What noises should be blocked? Garbage in, Garbage out, if one absorbs more garbage info, certainly one's output and quality in a low level. And also have harmful effects in absorbing more high-quality content; everyone only has 24 hours one day, so why pay attention to these noises?
So I start to think about what content should give more attention since I observe the new world. Which topics are engaging, exciting, and challenging? Even more What are the more possibilities? Although we know the world is a dark forest to some extent, some things make one sad, but the surprise connections and new thoughts trigger more passion. The articles cover three topics with more value, and we should keep an eye on them.
the evolution of technology and the corresponding tech stacks
- the development form of computers
- the different paradigms of software development
- how to advance one's tech stacks
- the guide about software development practices and how to make a more advanced step
- A deep understanding of the EVM mechanism
The market situations and the evolutions of the financial products in web3
- the different products based on a different architecture
- the financial products under web2 and web3
- which points between web2 and web3 should give more attention
The difference and some potential between different geographical areas、different languages 、different communities
- The impact on communities has been growing
- What's the difference between China and America in web3, in my understanding
- What are the possibilities under the differences
1. the evolution of technology and the corresponding tech stacks
1) the development form of computers
First, many forms of computers have emerged sequentially in history. As we can see, including the personal computer(some programs in personal computers which do not connect to the internet), Mobile Phones(Not limited to the location), and some soft systems based on the Client-Services model, centralized services, and cloud services. All these services are backed by one entity that maintains the operations. With the distributed technology development, some services appear that many nodes collaborate to support, such as the distributed share docs. But these services are only limited to share docs. The more complex applications has yet to achieve.
BTC's main feature as a medium of exchange for a cryptocurrency from the initial design. Although the design never appeared in human history, the more complicated business logic implementation is difficult in BTC, such as our current apps on mobile or computer, which have much more complex logic according to our needs. But with Ethereum’s appearance and development, more apps with complex logic based on the smart contract have more possibilities emerging.
new form of computer
To my excitement, This is a super great computer, which anyone can interact with when connecting to the internet. How we interact with it is different from how we interact with the mobile or computer. However, we constantly interact with the super great computer by mobile or computer.
In brief, the new computer has below features:
- permissions(anyone, anytime, anywhere, can interact with it, have basic network and hardware)
- the base layer is based on distributed tech. No centralized entity can control it
- How we interact with, and display content is different from the previous computer we see. in essence, it's txs on chains.
Essentially, the structure of the txs as below
source:https://noxx.substack.com/p/evm-deep-dives-the-path-to-shadowy-16e ( EIP1559 adjusted gas setting)
Simply think this is a super great computer; anyone can play it no matter where they live; perhaps the people who play it couldn't have any relations if this new type of computer didn't exist—what a fascinating thing.
2) the different paradigms of software development
As a software engineer in web2 previously, the feeling about the different paradigms between web3 and web2 is even more vital. The below videos have taught me many critical fundamental things. It's worth watching.
DappCamp X Rajeev Gopalakrishna : Web 3 Security
the different points in different perspectives
- keys and tokens
- unstoppable and immutable
- Open- source and transparent
- Pseudonymous Teams & DAOs
- New Architecture, Language & Toolchains
- Composability by Design
- Compressed Timescales
- Test-in-Prod
- Byzantine Threat Model
- (who you trust and who don't you trust)
- every actor could be malicious.
- Miners,validator,infrastructure provider, developer,
- Team,users
- Anyone could be a threat
- Audit-as-a-Silver-Bullet
Many people may understand the different architectures between web2 and web3 but may need to pay more attention to more perspectives. Such as the trust model: who are the potential attackers in web2? Are they outside people or inside people? The judgment can always easily confirm in web2. But in web3, anyone could make malicious actions, the miners(validators) perhaps can make, the team behind the protocols can make, even the developers or users can make. What are the considerations based on the above situations, and what jobs should do? There have appeared some hacked cases involving the above sititutions. You can easily find the corresponding cases if you have noticed the ongoing hack incidents.
3) how to advance one's tech stacks
The low efficiency is in getting the on-chain data while I learn, write, and interact with the smart contracts. We can quickly get the data by SQL in web2 if familiar with the tables structures. And can query the running system's state data by the IDE.
Getting the on-chain data or customer data is always a combination of operations; we need to be skillful in some tools and familiar with the block data structure. So the question of how to get the on-chain data quickly as the web2 development is significant. Thus developers can interact with the smart contract at a good speed.
The question can analyze in two layers.
- The excellent understanding of the on-chain data structures.
On-chain data structures include but are not limited to the following: blockhead, block body, the transactions in the block, logs, receptions, and Merkle data.
The dune encapsulated the blockchain data according to their design and the customer's need, so we could better understand the blockchain data structure. Below are my summaries of the design.
- Extract the rudimentary data, including the block data, transactions, and states info. Then make new tables according to different needs based on the extracted data. The requirements could be to query the protocol data(all the addresses which interact with the uniswap_v2) or the involved operations(the addresses which interact with one pool of the sushi). So we can query the data we want with the new tables.
- We define the tables, which extracted data according to different demands, called the abstractions, such as the table called erc20.tokens, which pulled all the ERC-20 token basic info. Also, users or third-party can define their tables based on their demands.
- The abstractions can be divided into many categories according to demands, such as protocols data, specific smart contract data, and always-used data, such as price and NFT data. In general, the needs we encounter and want to do can all analyze and deal with based on the encapsulated or basic tables info.
- All the above just involved some data structure designs. The more features such as data visualization and the dashboard, which other great guys have written, also have great value. With blockchain technology becoming more and more effective in the real world, on-chain data analysis has great potential. If one has some fundamental knowledge or experience in programming, this is an excellent tool to help to do more things.
2. How to get the blockchain data? The ways which get the on-chain data include but are not limited to the blew.
- Geth client, command lines
- etherscan.com explorer
- SQL by dune
- standard used development tools such as hardhat, forge(cast)
From the perspective of writing the program, getting data from the development tools is the most efficient way. For example, we can write script tasks by hardhat and then integrate the scripts into other programs such as a shell.
Hardhat.config.ts(config a task that can get the smart contract's code when inputting a smart contract address)
task("getCode", "Prints smart contract bytescodes by address'")
.addParam("account", "The account's address")
.setAction(async (taskArgs, hre) => {
let code = await hre.ethers.provider.getCode(taskArgs.account);
console.log(code);
});
Directly use the task in the command line
npx hardhat getCode --account 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D --network goerli
forge cast(supply some command lines) get the block data based on march 2022, the same time as now.
date -v21y -v3m "+%s" | xargs cast find-block | xargs cast block
Getting the different on-chain data according to one's demands can quickly implement based on the above ways and the more tools emerging in community, such as CTC
4) the guide about software development practices and how to make a more advanced step
Many people who want to enter the world ask one question, How to become a web3 developer? There are many good guys guides in the community. Some guides are excellent.
- Learn Blockchain Basics and Ethereum.
- Smart Contracts and Programming Language.
- Learn Testing Frameworks like hardhat/foundry
- Learn Finance Basics.
- DEFI and DEFI Attack Vectors:
- Learn Commonly used Libraries and Token Standards:
- Learn common Smartcontract bugs, Tools and best Practices
- Complete CTF challenges.
- Read Audit Reports and Postmortem Blogs:
- Continuous Learning and Research
The third point people may need to pay attention to is basic financial knowledge. Defi supplies the features like an exchange, collateral, borrow and lend, and derivatives Trading, which are similar to traditional financial products. But there are not only similarities but also some differences, such as flash loan, which only exists in defi. Undoubtedly, the financial mechanism in defi will become more and more complicated with the development of the markets. All the above makes me make one judgment. The soft development in web3 and web2 is the different philosophy System Structure.
- the fundamental design and philosophy are different
- the software development tools are different
- there are more considerations from the security perspective
- the products are cross-regionals and cross-border from the born
- the facilitating power of the community
- business logic's innovations, more new ideas, and thoughts
other references:
5) A deep understanding of the EVM mechanism
I have more attention to the EVM based on the following considerations:
- There is many top protocols' hiring info, including one requirement which should have a good understanding of the EVM.
- From my own learning experiences, the gas optimism and security have a deep relation with the EVM.
- The EVM is the core of Ethereum from the tech perspective.
I can grasp more EVM chains quickly if I have a deep understanding of the EVM, and I also can grab other no EVM chains because their design may borrow from Ethereum.
Java programs can execute based on the java virtual machine(JVM); JVM's design considers the different platforms so that the Java program can run on different platforms. The essence of the running JVM is stacks of Bytes Code. The computer's s chip's instruction sets are also stacks of the bytes code, which is configured when chips are produced. The difference in my understanding is that EVM's design is purely based on soft architectures. Although I am unfamiliar with the design, my understanding is that the EVM has some realtions with the chips' Instruction sets or JVM design, which indicate the information technology development.
All of the above make me consider learning that EVM has many benefits. Meanwhile, many good articles guide readers to grasp difficult concepts. This learning experience is fantastic; I can grasp difficult concepts step by step.
The Ethereum Virtual Machine (EVM) Architecture and Execution Context sources:https://github.com/ethereumbook/ethereumbook/blob/develop/13evm.asciidoc
other references:
- https://noxx.substack.com/p/evm-deep-dives-the-path-to-shadowy
- https://betterprogramming.pub/solidity-tutorial-all-about-data-locations-dabd33212471
the most cover full materials about the EVM