diff --git a/.gitignore b/.gitignore
index 6684837..896953a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,4 +54,8 @@ packages/*
.vagrant
.vagrant/*
-.env
\ No newline at end of file
+.env
+
+# built assets
+themes/navy/source/js/vendor.js
+themes/navy/source/js/vendor.js.map
diff --git a/.gitmodules b/.gitmodules
index b594082..3cccde8 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "themes/navy/layout/partial/shared-partials"]
path = themes/navy/layout/partial/shared-partials
url = https://github.com/status-im/status.im-partials
+[submodule "themes/navy/source/js/shared-js"]
+ path = themes/navy/source/js/shared-js
+ url = git@github.com:status-im/status-im-js.git
diff --git a/gulpfile.js b/gulpfile.js
index a77babf..f451e71 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -37,7 +37,11 @@ var config = {
paths: {
src: {
scss: './themes/navy/source/scss/*.scss',
- js: './themes/navy/source/js/main.js',
+ js: [
+ './themes/navy/source/js/shared-js/js/utils.js',
+ './themes/navy/source/js/shared-js/js/popups.js',
+ './themes/navy/source/js/main.js',
+ ]
},
dist: {
css: './public/css',
diff --git a/package.json b/package.json
index 862b2f1..9c03712 100644
--- a/package.json
+++ b/package.json
@@ -13,13 +13,14 @@
"update-submodules": "git submodule update --recursive --remote"
},
"dependencies": {
- "gulp": "^3.9.1",
"cheerio": "^0.20.0",
+ "gulp": "^3.9.1",
"hexo": "^3.7.1",
"hexo-deployer-git": "^0.3.1",
"hexo-generator-archive": "^0.1.4",
"hexo-generator-feed": "^1.1.0",
"hexo-generator-sitemap": "^1.1.2",
+ "hexo-renderer-ejs": "^0.3.1",
"hexo-renderer-jade": "^0.4.1",
"hexo-renderer-marked": "^0.2.10",
"hexo-renderer-stylus": "^0.3.1",
diff --git a/source/docs/building.md b/source/docs/building.md
index b7bd0ab..11621df 100644
--- a/source/docs/building.md
+++ b/source/docs/building.md
@@ -8,30 +8,108 @@ This document will explain how to install, test, and run Nimbus on your local ma
## Getting Started
- [install Nim](https://bitfalls.com/nim1)
-- be on a command-line friendly system (i.e. access to Terminal / Console / Git Bash / Powershell)
+- be on a command-line friendly system (i.e. access to Terminal / Console / Cmder / [Git Bash](https://git-scm.com) / Powershell)
-## Prerequisites
+Alternatively, [download our pre-configured Vagrant box](https://our.status.im/setting-up-a-local-vagrant-environment-for-nim-development/).
-- install [RocksDB](https://rocksdb.org/) via official instructions or by running the below commands:
+_Note: the Nimbus build system uses Makefiles to make the process identical across platforms, easy to update, and compatible with any OS. We don't use Nim's package manager Nimble because it's fundamentally broken._
- - on OS X:
- ```bash
- brew install rocksdb
- curl https://nim-lang.org/choosenim/init.sh -sSf | sh
- ```
- - on Linux
- ```bash
- sudo apt-get install librocksdb-dev rocksdb # or your own Linux distribution's equivalent
- curl https://nim-lang.org/choosenim/init.sh -sSf | sh
- ```
-
-## Install Nimbus
+### Installing
+
+Clone Nimbus.
```bash
-git clone https://github.com/status-im/nimbus
+git clone git@github.com:status-im/nimbus
cd nimbus
-nimble install
-nimble test
+```
+### Dependencies
+
+To run Nimbus, we'll need the RocksDB database and a newer version of Nim. On OS X, execute:
+
+```bash
+brew install rocksdb
+curl https://nim-lang.org/choosenim/init.sh -sSf | sh
```
-Run Nimbus with `nimbus` or look at flags and options with `nimbus --help`.
\ No newline at end of file
+On Linux, this should do it:
+
+```bash
+sudo apt-get install librocksdb-dev rocksdb # or your own Linux distribution's equivalent
+curl https://nim-lang.org/choosenim/init.sh -sSf | sh
+```
+
+On Windows, please first make sure you have `make` installed - either in the form of `MinGW32make.exe` via [MinGW website](http://www.mingw.org) or regular old make installed through Git Bash or a package manager like Chocolatey:
+
+```bash
+choco install make
+```
+
+_Note - Windows requires you to add programs you want to be able to execute from anywhere on your machine to your PATH environment variable. This is done by simply opening the Start Menu, searching for "Env", selecting "Edit the system environment variables", clicking on Environment Variables in the popup, and then editing the PATH variable in the list by adding a new entry that corresponds to the folder into which you installed your version of `make` (Choco takes care of this for you, only applies if you installed manually). [This is what mine looks like](https://imgur.com/a/yQIi6Qa)._
+
+Next, run:
+
+```
+make fetch-dlls
+```
+
+or
+
+```
+mingw32make.exe fetch-dlls
+```
+
+This downloads the rocksdb and sqlitedb DLL files into `nimbus/build` so that the built program can read them.
+
+_In the content below, `make` will refer to `make` or `mingw32.exe`, depending on which you're using. Make the change to your commands accordingly._
+
+### Building, Testing, Running
+
+To build Nimbus:
+
+On OS X / Linux:
+
+```bash
+make
+```
+
+The Nimbus client will now be in `build/nimbus` on any OS and can be run with the same command:
+
+```bash
+./build/nimbus
+```
+
+It should synchronize up to block 49439 and then crash, as mentioned above. Look at flags and options with `build/nimbus --help`.
+
+To test, run:
+
+```bash
+make test
+```
+
+To update the source files for a rebuild:
+
+```bash
+make update
+```
+
+To clean the slate and start with a fresh build:
+
+```bash
+make clean
+```
+
+### Ethereum 2.0
+
+To run and test the Ethereum 2.0 version of Nimbus (the network simulation):
+
+```bash
+make eth2_network_simulation
+```
+
+You should now see attestations and blocks being produced and confirmed and a bunch of other details from the nodes as they do their thing.
+
+![Beacon nodes communicating](/img/beacon.jpg)
+
+---
+
+Congrats! You're now running Nimbus for both the Ethereum 1.0 platform, and the coming [Ethereum 2.0](https://our.status.im/tag/two-point-oh).
\ No newline at end of file
diff --git a/source/docs/design.md b/source/docs/design.md
index 80c7b83..61eb66f 100644
--- a/source/docs/design.md
+++ b/source/docs/design.md
@@ -42,4 +42,4 @@ Within the community at large, we will promote Ethereum as the leader of scalabl
## Bounty-Based Development
-To entice the community to accelerate the development, we will attach bounties to and **[publish](https://openbounty.status.im/app#/)** the tasks that can be self-contained and defined clearly.
+To entice the community to accelerate the development, we will attach bounties to and **[publish](https://openbounty.status.im/app#/)** the tasks that can be self-contained and defined clearly. We'll also have bounties [on Gitcoin](https://gitcoin.co/explorer?keywords=nimbus&order_by=-web3_created).
diff --git a/source/docs/faq.md b/source/docs/faq.md
index bdd8ec1..0038700 100644
--- a/source/docs/faq.md
+++ b/source/docs/faq.md
@@ -8,12 +8,12 @@ In talking to people both familiar and complete strangers to Ethereum clients, t
### Q: When do you expect to have it production-ready?
-Not for a while. Sharding is a long ways off, and until then we'll be focusing on getting Ethereum v1 tests to pass in our full node mode. The full node will be ready in 2019, but the super-light implementation might take longer.
+Soon. We've got some network simulations already running for [Ethereum 2.0](https://out.status.im/tag/two-point-oh), and we're syncing up to block 50000 on Ethereum 1.0. To stay in the loop, please follow our development updates on [our blog](https://our.status.im/tag/nimbus).
### Q: How is a super-light node different from just calling Infura through Web3js?
A Web3js or any similar JavaScript package for communicating with the blockchain is basically a more advanced XMLHttpRequest / Fetch wrapper. What we mean by this is that these packages retrieve information from another node and trust it implicitly. They ask "has this transaction been confirmed?" and get a response that's either "yes" or "that transaction is unknown". With light nodes, they ask "give me the data to check if this transaction has been confirmed" and then check on their own. This is a trust-minimized setup which combines the best of both worlds - very little storage and processing power required while allowing for cryptographic verification of the full node's claims.
-### Q: What's the plan for mobile? You speak of deploying to mobile devices, but Nimbus only compiles to C, C++ and JavaScript and iOS and Android don't support C natively. Will you be compiling to JS and deploying with a web wrapper? That doesn't sound performant!
+### Q: What's the plan for mobile?
-Native compiles with Nim work for both Android and iOS, just like geth written in go works. It's all NDK/C API. We'll soon have published specific instructions on how to compile it for all manner of devices.
\ No newline at end of file
+While true that Nimbus only compiles to C, C++ and JavaScript and iOS and Android don't support C natively (and we definitely don't want a JS version of Nimbus running on a mobile device), native compiles with Nim work for both Android and iOS, just like geth written in go works. It's all NDK/C API. We'll soon have published specific instructions on how to compile it for all manner of devices, but you can already give it a go by following the [build instructions](/docs/building.html).
\ No newline at end of file
diff --git a/source/docs/team.md b/source/docs/team.md
index 205804e..a785218 100644
--- a/source/docs/team.md
+++ b/source/docs/team.md
@@ -17,11 +17,6 @@ With a keen interest and background in peer-to-peer applications and compilers,
Mamy joined Status as a Nim developer in the research team. After a career in leading American and French banks and non-profits, he decided that tech, blockchain and AI will eat the world. On the side, instead of mining he is teaching deep learning tricks to his GPU.
-### [Ryan Lipscombe](https://github.com/coffeepots)
-
-Fascinated by the transformative potential of blockchain and distributed systems, Ryan joined Status research as a Nim developer. His career spans from data science to embedded systems and has been part of the Nim community since 2015, working on database components and virtual machines for evolutionary systems.
-
-
### [Yuriy Glukhov](https://github.com/yglukhov)
Yuriy has deep passion for new technologies and keen interest in many areas of IT. He was one of the first CTOs to successfully use Nim in a commercial project.
@@ -39,6 +34,14 @@ Dustin is the team's Pure Quickwitted Indianglassfish.
Bruno is the technical writer and team's DX guy. He's been in blockchain for 3 years after 15 years of web. His passion for decentralization and forwarding the world's truly censorship-free internet is what drove him to Nimbus. What little free time he has, he tries to spend on sports, board games and VR. You can add him on Oculus and Steam as theswader.
+### [Peter Munch-Ellingsen](https://github.com/PMunch)
+
+Peter has been working with Nim since discovering it during his studies back in 2016. Since a young age he's been interested in programming. Starting out with games, but touching in on everything from web to high-performance and distributed computing through his work and studies.
+
+### [Ștefan Talpalaru](https://github.com/stefantalpalaru)
+
+Ștefan comes from a decade of professional web development and a decade and a half of amateur free software contributions in a wide range of domains and programming languages. His claim to fame in the Nim world is the grafting of a Go runtime to the Nim compiler by way of the pluggable garbage collector API.
+
# ETYMOLOGY
Nimbus is a reference to:
diff --git a/themes/navy/layout/index.swig b/themes/navy/layout/index.swig
index b14999d..e8234f0 100644
--- a/themes/navy/layout/index.swig
+++ b/themes/navy/layout/index.swig
@@ -5,7 +5,7 @@
Researching and implementing lighter Ethereum 2.0 clients
Nimbus is a research project and a client implementation for Ethereum 2.0 designed to perform well on embedded systems and personal mobile devices, including older smartphones with resource-restricted hardware.