其他的四拍子（4/4）六拍子（6/8），或者是什么奇怪的五拍子（5/4 = 3/4+2/4）、七拍子（7/8=4/8+3/8），都是由单拍律动组合叠加出来的复拍子。
The best way to prevent over-engineering from my point of view is to turn your engineers into true product engineers
We can achieve it by involving them in the day-to-day business,
explaining the why after each initiative, and
linking it with the metrics that matter for the organization and its vision.
We need to bring them closer to our users, inviting them to interviews and discovery sessions with them.
Don’t expect your engineering team to be motivated to avoid complexity
if you treat them as mere production chain resources whose sole task is to implement user stories from a backlog.
They need to understand the why behind each decision.
define the problem well to reduce ambiguity.
Your engineers need to know the why, but they also need to know what to expect.
The more you can narrow down the problem, the less reason they will have to protect themselves from overengineering a solution.
First, the web is delightfully weird again (yay!)
Web3’s culture is young and vibrant. It’s reminiscent of the earliest days of the web and of many of the things that made the 90s internet fun: small communities, weird new technology, lots of blue-sky experimentation, a sense of cultural motion, the excitement of discovery, and new ways to express oneself.
Design is adventurous again. It’s technotronic; it’s blinged out; it’s brutalist; it’s Space Jam circa 2021.
Money is at the center of it all, yet it’s far from templatized, corporate, or sterile. It’s a hip bar in a club that a cooler friend had to tell you about.
Web3 is inseparable from blockchains and cryptocurrencies
Blockchains flip the script on Internet protocol development
The history of the Internet is, in part, the history of the birth, adoption, and stewardship of distributed protocols by the broader community.
Blockchains follow in this tradition, but also break radically from it: they are the first protocols to arrive with an asset class attached.
Protocols like SMTP (1981; email), TCP (1983; reliable packet transmission), HTTP (1991; web), and XMPP (1999; chat) all created immense value
while capturing little for their inventors.
Blockchains upend this, allowing inventors to capture considerable value for themselves.
Blockchains are not equal; programmable blockchains are rich and strange
Ethereum is a different beast entirely: rather than maintaining a simple ledger, Ethereum’s blockchain is used to maintain the state of a virtual machine —
a single fully programmable computer shared by everyone on the Internet.
By writing and deploying “smart contracts” — code intended to run on the Ethereum Virtual Machine (EVM) — developers can guide the future evolution of the system.
This has given rise to new digital constructs like NFTs and DAOs.
Solan is one of several programmable chains that followed in Ethereum’s wake.
Solana’s focus is on enabling high-throughput low-cost transactions, two crippling weaknesses with the current Ethereum network.
Several innovations in distributed consensus design make Solana’s performance possible.
Very few categories of data belong on-chain
A good rule of thumb: unless (1) you need to shout to the world that action A took place at time T, and (2) the world cares enough to pay attention, you don’t need a blockchain*.
Updates to financial ledgers are a perfect example;
despite a decade of optimism from enthusiasts, few others have been found that have achieved broad adoption.
Ledgers, coins, and tokens are the abstractions upon which all crypto is built
The “who” is an account. In the case of programmable blockchains, that’s either a person holding a private key, or it’s a smart contract.
The “what” is either a coin or a token. The distinction has somewhat fuzzy boundaries but, roughly speaking, a coin is a blockchain’s intrinsic currency, like Ether, Bitcoin, Sol, or Dogecoin.
A token is an asset defined on top of a programmable blockchain, like Shiba Inus or CryptoPunk #1772. (A naming exception is made for “stablecoins,” which are closer to tokens in implementation.)
Blockchains allow anyone to assert the existence of new digital assets
simply waving crypto’s “magic wand” doesn’t create value.
It’s everything that’s wrapped around the tokens that matters.
Early on, the community experimented by attaching pictures of punks and apes to its tokens.
Later, it tried stapling complex structured metadata to them, for example for NFT game characters.
Today, we’re starting to see sophisticated code wrapped around tokens
Today’s smart contract programming models are deeply flawed
Smart contracts can’t reference the “real-world”.
They can only reference the blockchain itself.
This is known as the “oracle problem” and it makes blockchains a necessarily closed system.
blockchain storage is wildly expensive; storage of real-world data, particularly data that needs regular updates, is prohibitive
To use data provided by oracles, you must trust it.
The question of trust in the Web3 world strikes us as equal parts technical and philosophical.
Smart contracts can’t be upgraded.
Smart contracts are deployed once and run forever; their code cannot be changed.
Smart contracts require complex distributed systems to run, effectively, forever.
Not only do the blockchain networks need to be maintained in perpetuity,
but the smart contracts of today will need to run without alteration to their behavior indefinitely into the future.
Distributed consensus technology could change radically in the next decade
We should expect to live in a multiple-blockchain world, with all its complexities
There are several instances of connection today.
Take for example the Solana-to-Ethereum wormhole, which allows tokens to be created on the Ethereum blockchain that represent assets on the Solana chain, and vice versa.
It is a technically sophisticated construction:
the smart contract deployed at one side of the wormhole needs to “own” the assets transported to the other side;
the smart contract on the other needs to mint new “wrapped” tokens that act like remote proxies for the real things.
Blockchains are regularly credited with powers they do not, in fact, have
One way to think of tokens is as pure abstractions of potential rights
a reasonable future framing of (non-fungible) tokens might be that they are pure digital abstractions to which a bundle of property rights can be attached.
Of course, to arrive at this very theoretical future, we’d need public/private partnerships to bridge the world of crypto with the normal legal and regulatory world.
“You don’t need a blockchain to do X,” even when true, might miss the bigger picture
crypto’s current prices are… big numbers
The lack of standardization on how to derive valuation, coupled with the Wild West of new mechanics, creates the perfect conditions for crypto’s crazy high valuations to seemingly emerge overnight.
Onboarding to crypto is easy; going deep is walking on fire
The typical user’s first foray into the crypto ecosystem is through fiat on-ramps like Coinbase.
To wade deeper into the web3 world, users need to install noncustodial wallets like MetaMask: software tools that are functionally “1Password but for your crypto private keys”.
Unlike 1Password, however, MetaMask is a user experience disaster
Beyond wallets and browsers: the typical user-facing Web3 service is built for those “in the know”.
Visit OpenSea and you won’t see much by way of explanation about what’s going on;
visit Mirror.xyz and you’ll see even less.
And yet these are interesting, deep services for those who know what they do and how to use them.
There are two roughly equivalent ways to describe Decentralized Autonomous Organizations.
they’re smart contracts that interact with and coordinate people at some level.
they’re groups of people in crypto-land working towards a common goal, whose actions are partially (or fully) mediated by code.
Nearly all DAOs share two things in common:
a governance token, which grants voting rights to its holders, and
a system for proposing actions and voting them up or down.
Beyond this, however, the “goals of groups of people” covers an impressively wide range.
Some DAOs have multiple token classes; some only one.
Some DAOs tie their votes directly to action via smart contract code; most don’t.
There’s a huge taxonomy of DAOs emerging in the wild, all different
In a telegram thread in August 2018, “DeFi” was coined.
It quickly became the umbrella term for a rapidly-emerging set of peer-to-peer financial services on public blockchains.
DeFi enthusiasts will take anything that a centralized bank can do — lend, borrow, trade assets, trade derivatives, etc. —
and enable the same sort of interactions in a peer-to-peer system with no single point of failure.
Ethereum, with its fully programmable underpinnings, proved to be the blockchain in the perfect place at the perfect time for early DeFi projects to flourish.
This led to a flywheel effect: Ethereum enabled the proliferation of early DeFi services, and DeFi massively increased the usage, market cap, and (unfortunately!) gas fees of the Ethereum network.
Over time, Ethereum has proven to be sub-optimal for the incredible demand DeFi services have seen.
The network has diseconomies of scale and, given its low throughput capability,
gas fees (the cost of executing a transaction on the Ethereum network) have recently been over $150.
Blockchains are the kinds of databases that frustrate developers
Blockchains are databases, yes, but they’re not databases designed for traditional online analytics processing: they’re not designed to be easily queryable.
An entire cottage industry has emerged around building blockchain ETL systems: specialized code extracts relevant information from the target blockchain, and then loads it into either a SQL database, or into a data warehouse that offers some kind of rapid query functionality.
A number of open source tools exist, including the young but still-quite-useful ethereumetl project.
Extracting usable data from blockchains is hard.
It’s hard because there’s a lot of data;
extracting the data rapidly, at-scale, and at-cost is by itself a nontrivial challenge.
It’s hard because there’s always new data:
a great blockchain data system will need to both batch and stream data.
But more than that: it’s hard because the data on programmable blockchains, in particular, requires interpretation based on the actual smart contracts deployed, and on the ecosystem surrounding those smart contracts.