Skip to content

Instantly share code, notes, and snippets.

@lemonteaa
Last active March 5, 2021 16:27
Show Gist options
  • Save lemonteaa/22264bacfd4833d544efe5d78d6b55d0 to your computer and use it in GitHub Desktop.
Save lemonteaa/22264bacfd4833d544efe5d78d6b55d0 to your computer and use it in GitHub Desktop.
Dump of blockchain related links I saved, dug out from a deep burrow

Blockchain tech link dump

Context

Someone on lihkg asked whether there is a technically oriented blockchain tg group. I guess there probably is, but still, I remember having spent quite some time trying to navigate this space, and it can be very addictive. It takes some experience to separate out the technical meat from just narcissistic self-aggrandizement. Although it is a maze, in the end I did come out with the knowledge that there are some legitimate insights, and I saved those links in a note somewhere, which quickily got buried. Today I'm digging it out and dumping it here for the record.

(Note: the full list has been slightly abridged and some not-too-relevant links pruned)

(2nd version: finished dumping the original note file) (3rd: dug out 2 more links by searching google... I should have saved those, not sure why it's not found on my notes)

Main (Including theory)

https://docs.soliditylang.org/en/v0.8.2/introduction-to-smart-contracts.html

https://github.com/pirapira/awesome-ethereum-virtual-machine

https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf

https://dappsforbeginners.wordpress.com/tutorials/your-first-dapp/

https://github.com/pubkey/eth-crypto

https://cryptobriefing.com/understanding-ethereums-gas-transaction-fees/

https://kauri.io/#collections/Ethereum%20101/ethereum-101-part-2-understanding-nodes/

https://ethereum-classic-guide.readthedocs.io/en/latest/docs/appendices/how_nodes_find_each_other.html

https://www.researchgate.net/publication/327000228_On_the_Similarities_between_Blockchains_and_Merkle-Damgard_Hash_Functions

https://blog.ethereum.org/2020/07/17/ask-about-geth-snapshot-acceleration/

https://eth.wiki/concepts/ethash/design-rationale https://eth.wiki/en/fundamentals/design-rationale

https://github.com/ethereumbook/ethereumbook (Important, I especially like chapter 6, although my original bookmark is ch4) (Found it originally from https://fullstacks.org/)

Core EVM theory

https://www.preethikasireddy.com/post/how-does-ethereum-work-anyway

https://medium.com/blockchannel/life-cycle-of-an-ethereum-transaction-e5c66bae0f6e

https://blog.ethereum.org/2019/12/30/eth1x-files-state-of-stateless-ethereum/

https://medium.com/shyft-network-media/understanding-trie-databases-in-ethereum-9f03d2c3325d (Important)

https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/

Advanced portion

https://blog.ethereum.org/2016/01/15/privacy-on-the-blockchain/ (Very nice review of advanced mathematical techniques (?) to protect privacy)

Other advanced portion

https://blog.kyber.network/waterloo-a-decentralized-practical-bridge-between-eos-and-ethereum-1c230ac65524 (This is the first link chronologically (?) where I read about additional technical topics in blockchain space like relay, sidechain...)

(also, 2 buzzwords in DeFi - Custodial, Permissioned. I guess they have very specific meaning aiming at being a critique of traditional banking)

Fee, Handson, etc

https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8

https://diode.io/iot/hardware-requirements-of-blockchain-clients-19196/

https://github.com/openethereum/js-libs

https://www.parity.io/light-js-how-to-build-your-dapp-on-a-light-client/

https://openethereum.github.io/js-libs/light.js/guides/tutorial1-set-up-a-light-client.html

https://consensys.github.io/smart-contract-best-practices/known_attacks/

https://github.com/ewasm/design

https://docs.openzeppelin.com/learn/preparing-for-mainnet

Stackexchange Q and A

https://ethereum.stackexchange.com/questions/19665/how-to-calculate-transaction-fee

https://ethereum.stackexchange.com/questions/3332/what-is-the-parity-light-pruning-mode

https://ethereum.stackexchange.com/questions/83536/what-is-good-peer-etiquette-for-being-a-light-node

https://ethereum.stackexchange.com/questions/27048/comparison-of-the-different-testnets

https://www.reddit.com/r/ethdev/comments/7pgrhc/should_i_use_rinkeby_or_ropsten_while_learning/

https://ethereum.stackexchange.com/questions/3360/how-to-create-a-temporary-account-for-testnet-with-funds

https://ethereum.stackexchange.com/questions/10140/at-any-given-time-how-many-nodes-is-my-node-connected-to-as-the-number-of-node?noredirect=1&lq=1

https://ethereum.stackexchange.com/questions/34/what-is-an-uncle-ommer-block

https://ethereum.stackexchange.com/questions/319/what-number-of-confirmations-is-considered-secure-in-ethereum

https://ethereum.stackexchange.com/questions/9721/how-does-network-agree-upon-next-block-when-two-blocks-are-generated-at-the-sam?rq=1 (From: https://ethereum.stackexchange.com/questions/9640/how-do-miners-decide-which-block-should-be-an-ommer-block?rq=1 From: https://ethereum.stackexchange.com/questions/34/what-is-an-uncle-ommer-block)

https://ethereum.stackexchange.com/questions/40896/how-does-a-miner-decide-how-many-contracts-transactions-to-pack-into-a-block?rq=1

"There is a "block gas limit", which is currently set to ~8Mgas (million gas). It can be increased or decreased by miners, but a consensus has to be reached through a voting mechanism. (I'm not entirely sure of the specifics of how that agreement/voting mechanism works.) "

https://ethereum.stackexchange.com/questions/43880/how-to-model-mining-competition-between-miners-uncles?rq=1

https://ethereum.stackexchange.com/questions/65315/what-happens-to-the-transactions-inside-an-uncle-block-and-what-if-a-contract-cr?noredirect=1&lq=1

https://ethereum.stackexchange.com/questions/57727/are-uncle-blocks-unnecessary-overhead-on-blockchain?rq=1

"Actually, it is not the case. Whenever a node knows that there is a fork, it can apply the selection rule to select the "canonical blockchain" (i.e. the only one that matters) by selecting the one in which the aggregate difficulty (the sum of the difficulty of all blocks, is maximal). So, after a confirmation time (e.g. an amount of blocks), you can be quite sure that those blocks are canonical. So you can forget about the old forks."

https://ethereum.stackexchange.com/questions/38121/why-did-ethereum-abandon-the-ghost-protocol?noredirect=1&lq=1

https://ethereum.stackexchange.com/questions/13378/what-is-the-exact-longest-chain-rule-implemented-in-the-ethereum-homestead-p?rq=1 "Ethereum determines the longest chain based on the total difficulty, which is embedded in the block header. Ties are broken randomly. Total difficulty is the simple sum of block difficulty values without explicitly counting uncles. Difficulty is computed based on parent difficulty and timestamp, block timestamp, and block number, again without reference to uncles. All of these except tiebreaking are consensus-critical, and so can be expected to be the same across all clients."

https://www.reddit.com/r/ethereum/comments/3c9jbf/wtf_are_uncles_and_why_do_they_matter/

Econ

https://thegraph.com/blog/modeling-cryptoeconomic-protocols-as-complex-systems-part-1

Others

https://www.devteam.space/blog/how-to-build-a-decentralized-cloud-storage-solution-like-storj-io/ (Not classic blockchain, but I dunno why I marked it as "Important")

https://thenextweb.com/hardfork/2019/03/13/ethereum-insiders-fire-back-nodes/

https://ethresear.ch/t/simpler-ethereum-sync-major-minor-state-snapshots-blockchain-files-receipt-files/7672

https://twitter.com/danrobinson/status/1299403425659011072 mempool

https://medium.com/metamask/metamask-labs-presents-mustekala-the-light-client-that-seeds-data-full-nodes-vs-light-clients-3bc785307ef5

https://zupzup.org/react-native-ethereum/

https://cashlink.de/en/a-painless-guide-to-working-with-the-ethereum-network/

https://hackernoon.com/what-are-sidechains-1c45ea2daf3 (side chain, re-org, mempool)

https://blockchainhub.net/blog/blog/blockchain-scalability-statchannels-sidechains/

https://blog.rsk.co/noticia/sidechains-drivechains-and-rsk-2-way-peg-design/ (Photo broken)

https://decrypt.co/38050/steem-steemit-tron-justin-sun-cryptocurrency-war

(also, "Layer 2" is another jargon)

Critique of blockchain

There are multiple angles to it.

https://wiki.p2pfoundation.net/bitcoin p2p are there way before blockchain, and this article is a long collection of critique raised against it. (Some of the arguments are deeper than what you usually see in public discourse)

There is also one nontechnical critique looking at the faulty and toxic elements of its social-cultural dynamic inside the blockchain community. Unfortunately, trying to dig that link out from my notes would be way too hard.

Even p2p (or its implementation) is subject to critique. One of the harshest one I've seen is this: https://lwn.net/Articles/781205/ (Linking further to "Rosenzweig: The federation fallacy", which is the actual piece)

Here's a lengthy piece from Alyssa Rosenzweig on preserving freedom despite the inevitable centralization of successful information services. "Indeed, it seems all networked systems tend towards centralisation as the natural consequence of growth. Some systems, both legitimate and illegitimate, are intentionally designed for centralisation. Other systems, like those in the Mastodon universe, are specifically designed to avoid centralisation, but even these succumb to the centralised black hole as their user bases grow towards the event horizon."

Notable blockchain project

Beware of sh*tcoin, and beware of hype (90% of startsup die, I believe the figure is much higher for blockchain project)

Cosmo - (If nothing else, their technical doc is pleasant to read: https://docs.tendermint.com/ and https://docs.cosmos.network/ )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment