From 0f5b4cb8588d6f92f4f4ac412dc66a87b030017c Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 2 Aug 2023 12:06:18 +0200 Subject: [PATCH 1/4] Some ruby updates --- .gitignore | 3 +++ Gemfile | 3 ++- README.md | 6 +++--- _config.yml | 4 ---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 666de10..de48bff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ +.DS_Store _site .sass-cache .jekyll-metadata +.bundle +vendor Gemfile.lock diff --git a/Gemfile b/Gemfile index 91ceacd..ab74e9d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,2 +1,3 @@ source 'https://rubygems.org' -gem 'github-pages', group: :jekyll_plugins \ No newline at end of file +gem 'github-pages', group: :jekyll_plugins +gem "webrick", "~> 1.8" diff --git a/README.md b/README.md index ce71de2..b257227 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ In ``scss/_variables.scss`` update the ``$fa-font-path`` to point to the ``../fo # LOCAL BUILD -To build the site locally you have to have a working [Ruby](https://www.ruby-lang.org) ``2.4.x`` environment (you can use the [RVM](https://rvm.io/) Ruby version manager for this) and ``bundle`` and ``Jekyll`` installed. +To build the site locally you have to have a working [Ruby](https://www.ruby-lang.org) ``3.2 .x`` environment (you can use the [RVM](https://rvm.io/) Ruby version manager for this) and ``bundle`` and ``Jekyll`` installed. Install the ``GitHub pages`` gem from the ``Gemfile`` with: @@ -45,13 +45,13 @@ See also [this article](https://help.github.com/articles/setting-up-your-github- The site can then be build with: ``` -jekyll build +bundle exec jekyll build ``` And being served on http://127.0.0.1:4000 with: ``` -jekyll serve +bundle exec jekyll serve ``` [discord-badge]: https://img.shields.io/static/v1?logo=discord&label=discord&message=Join&color=blue diff --git a/_config.yml b/_config.yml index af9311b..d1f9ce0 100644 --- a/_config.yml +++ b/_config.yml @@ -5,10 +5,6 @@ google_analytics: show_downloads: true theme: jekyll-theme-cayman -gems: - - jekyll-mentions - - jekyll-github-metadata - sass: load_paths: - assets/css # original sass From 9d67168d741531eff30d14b41ec44bd74bc7489b Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 2 Aug 2023 13:43:45 +0200 Subject: [PATCH 2/4] Update EthereumJS website/landing page reflecting recent projects and priorities --- _includes/repository.html | 3 - _includes/repository_small.html | 7 + assets/css/style.scss | 1 + index.md | 266 ++++++++++++++++++++++++-------- 4 files changed, 211 insertions(+), 66 deletions(-) create mode 100644 _includes/repository_small.html diff --git a/_includes/repository.html b/_includes/repository.html index 4f2f900..23261a6 100644 --- a/_includes/repository.html +++ b/_includes/repository.html @@ -19,8 +19,5 @@ - - - {% endif %} {% endfor %} \ No newline at end of file diff --git a/_includes/repository_small.html b/_includes/repository_small.html new file mode 100644 index 0000000..61165f8 --- /dev/null +++ b/_includes/repository_small.html @@ -0,0 +1,7 @@ +{% for repository in site.github.public_repositories %} +{% if repository.name == include.name %} + + + {{ repository.stargazers_count }} +{% endif %} +{% endfor %} \ No newline at end of file diff --git a/assets/css/style.scss b/assets/css/style.scss index a6aafbf..173317c 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss @@ -17,6 +17,7 @@ h1 { padding: 20px; font-size: 1.2rem; text-align: center; + margin-bottom: 7px; } .repo-group { diff --git a/index.md b/index.md index a2c8417..6345007 100644 --- a/index.md +++ b/index.md @@ -1,113 +1,253 @@
- The EthereumJS community builds Javascript tools implementing core Ethereum - technologies, protocols and APIs for helping developers to interact with the Ethereum network and build - their own applications. + EthereumJS is an implementation of the core Ethereum Execution Layer (EL) Protocol stack in TypeScript.
+
+ https://github.com/ethereumjs/ethereumjs-monorepo +  {% include repository_small.html name="ethereumjs-monorepo" %} +
+

Projects

-

VIRTUAL MACHINE

-

Implementation of the Ethereum virtual machine supporting the latest fork rules.

- {% include repository.html name="ethereumjs-vm" %} +

VIRTUAL MACHINE (EVM)

+

Implementation of the Ethereum Virtual Machine in TypeScript supporting + all hardforks and allowing for easy integration of the EVM in browser applications.

-

MERKLE TREE / RLP

-

Implementation of the core Ethereum data structure.

- {% include repository.html name="merkle-patricia-tree" %} - {% include repository.html name="rlp" %} +
+
+
+ + + +
+ @ethereumjs/vm +
+
+
    +
  • All hardforks until Shanghai
  • +
  • Preliminary Cancun support (incl. EIP-4844)
  • +
  • Extended tracing and debug support
  • +
  • Flexible EIP on/off engine
  • +
  • Modular EVM core
  • +
+
+
-

DAPP DEVELOPMENT

-

Libraries and tools to support Dapp development.

- {% include repository.html name="ethrpc" %} - {% include repository.html name="ethereumjs-util" %} - {% include repository.html name="ethereumjs-units" %} - {% include repository.html name="ethereumjs-abi" %} - {% include repository.html name="ethereumjs-tx" %} +

Execution Layer Client

+

Execution Layer client similar to Go-Ethereum or Nethermind in TypeScript with support for + full sync and most of the JSON RPC endpoints.

-

KEY MANAGEMENT

-

Tools for Ethereum key management and wallet interaction.

- {% include repository.html name="ethereumjs-wallet" %} - {% include repository.html name="keythereum" %} - {% include repository.html name="ethereumjs-icap" %} - {% include repository.html name="helpeth" %} +
+
+
+ + + +
+ @ethereumjs/client +
+
+
    +
  • Full sync support
  • +
  • Engine API
  • +
  • JSON-RPC via HTTP or Websocket
  • +
  • Syncs small and mid-size test networks
  • +
  • Used for protocol development (EIP-4844)
  • +
+
+
-

BLOCKCHAIN

-

Implementations of the main building blocks of the Ethereum blockchain.

- {% include repository.html name="ethereumjs-client" %} - {% include repository.html name="ethereumjs-blockchain" %} - {% include repository.html name="ethereumjs-block" %} - {% include repository.html name="ethereumjs-account" %} - {% include repository.html name="ethereumjs-blockstream" %} +

Ultralight

+

Portal Network client implementation in TypeScript (in Development).

-

UTILITIES / BINDINGS

-

Utilities libraries and bindings to third-party libraries.

- {% include repository.html name="geth.js" %} - {% include repository.html name="ethashjs" %} - {% include repository.html name="node-ethash" %} - {% include repository.html name="rustbn.js" %} +
+
+
+ + + +
+ Ultralight +
+
+
    +
  • History Network Support
  • +
  • State Network (in development)
  • +
  • Beacon Chain Network (in development)
  • +
+
+
-

NETWORK

-

Implementation of the Ethereum network communication layer.

- {% include repository.html name="ethereumjs-devp2p" %} +

Blockchain

+

Core building blocks for an Ethereum blockchain including a transaction library supporting all existing + transaction types.

-
- -

Use Cases

+
+
+
+
+ + + +
+ @ethereumjs/tx +
+
+ Implementation of the various transaction types. +
+
+ +
+
+
+ + + +
+ @ethereumjs/block +
+
+ Block representations for all hardforks. +
+
+ +
+
+
+ + + +
+ @ethereumjs/blockchain +
+
+ Ethereum mainnet-compatible blockchain. +
+
+ +
-### Creating an Online Wallet? +
-Check out [keythereum](https://github.com/ethereumjs/keythereum) or [ethereumjs-wallet](https://github.com/ethereumjs/ethereumjs-wallet) (with HD wallet support) for managing keys and [ethereumjs-tx](https://github.com/ethereumjs/ethereumjs-tx) for creating transactions with them. -[ethereumjs-icap](https://github.com/ethereumjs/ethereumjs-icap) might also come handy for dealing with the ICAP (Ethereum in IBAN) format. +
+

Protocol

+

Implementations of protocol components and data structures.

+
-### Creating a Dapp? +
+
+
+
+ + + +
+ @ethereumjs/trie +
+
+ Implementation of a Merkle Patricia Tree. +
+
+ +
+
+
+ + + +
+ @ethereumjs/rlp +
+
+ RLP encoding and decoding. +
+
+ +
+
+
+ + + +
+ @ethereumjs/util +
+
+ Utilities for 4844, bytes, signatures, withdrawals, addresses and other. +
+
+ +
+
+
+ + + +
+ @ethereumjs/wallet +
+
+ Wallet implementation with key management and various import formats. +
+
+
-You will need to interface with the Ethereum network. [web3.js](https://github.com/ethereum/web3.js) and [ethers.js](https://github.com/ethers-io/ethers.js) both provide a complete Javascript API to interact with the RPC interface. If looking for a more lightweight option, [ethereumjs-abi](https://github.com/ethereumjs/ethereumjs-abi) or [ethjs-abi](https://github.com/ethjs/ethjs-abi) can handle the ABI encoding. +
-### Build for the Web? -Most of the EthereumJS libraries can be transpiled with [babel](https://babeljs.io/) to be used in web context. -We provide [browser-builds](https://github.com/ethereumjs/browser-builds) for some EthereumJS libraries, be -warned though that these might often be slightly out of date. +
+

Network

+

Implementation of the Ethereum network communication layer.

+
-# Projects not Tracked Here +
+
+
+
+ + + +
+ @ethereumjs/devp2p +
+
+ Devp2p implementation with support for Discovery (DPT), RLPx transport, ETH protocol and SNAP. +
+
+
-There are various high-quality Ethereum infrastructure Javascript projects outside the EthereumJS scope. -Some worth mentioning: +
-* [web3.js](https://github.com/ethereum/web3.js): the complete API as seen in the [wiki](https://github.com/ethereum/wiki/wiki/JavaScript-API) -* [ethers.js](https://github.com/ethers-io/ethers.js): the complete API as seen in the [docs](https://docs.ethers.io) -* [eth.js](https://github.com/ethjs): Simple JS modules for the Ethereum ecosystem -# Contributing and Contact +

Contact

-Contributing to each of the projects is preferably done via pull requests. To start you can watch out for -"help wanted" issues on the organization [GitHub page](https://github.com/ethereumjs/) or have a look for -suitable issues on the various repos. +The EthereumJS libraries are maintained and developed by the Ethereum Foundation JavaScript Team.
You can reach out to us on - Gitter or - #ethereumjs on freenode. + Discord or + GitHub.

From 8ee732c1a03ecf94eef67132e2a52e111de250d0 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 2 Aug 2023 17:48:32 +0200 Subject: [PATCH 3/4] Address review feedback --- index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.md b/index.md index 6345007..26c5466 100644 --- a/index.md +++ b/index.md @@ -13,7 +13,7 @@

VIRTUAL MACHINE (EVM)

Implementation of the Ethereum Virtual Machine in TypeScript supporting - all hardforks and allowing for easy integration of the EVM in browser applications.

+ all hardforks and allowing for easy integration of the EVM in web applications.

@@ -30,7 +30,7 @@
  • All hardforks until Shanghai
  • Preliminary Cancun support (incl. EIP-4844)
  • -
  • Extended tracing and debug support
  • +
  • Basic tracing and debug support
  • Flexible EIP on/off engine
  • Modular EVM core
@@ -232,7 +232,7 @@ @ethereumjs/devp2p
- Devp2p implementation with support for Discovery (DPT), RLPx transport, ETH protocol and SNAP. + Devp2p implementation with support for Discovery (DPT), RLPx transport, ETH protocol, LES and SNAP.
From 9e2d706a5133efd31894e2f9a95bded9153765a7 Mon Sep 17 00:00:00 2001 From: Holger Drewes Date: Wed, 2 Aug 2023 21:27:25 +0200 Subject: [PATCH 4/4] Add Twitter note --- index.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/index.md b/index.md index 26c5466..be254ef 100644 --- a/index.md +++ b/index.md @@ -242,12 +242,14 @@

Contact

-The EthereumJS libraries are maintained and developed by the Ethereum Foundation JavaScript Team. +The EthereumJS libraries are maintained and developed by the Ethereum Foundation JavaScript Team +together with the wider Ethereum JavaScript developer community.
You can reach out to us on - Discord or - GitHub. + Discord, + GitHub or + Twitter.