diff --git a/README.md b/README.md index d83b3e1..f631751 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ Repository for the blockchain branch content and tests. ## Content πŸ“– -Exercises are progressive in difficulty. They are designed to learn the fundamentals of blockchains as well as the main technologies and tools used in the industry. +Exercises increase progressively in difficulty. They are designed to teach the fundamentals of blockchains, as well as the main technologies and tools used in the industry. + +The content is organized into *quests*, that offer several exercises on a topic, *raids*, that are larger collaborative exercises, and *projects*, to explore further. It should take two to three weeks to complete the *quests* and *raids*. - Quest 1: Experiment with basic Bitcoin transactions - Quest 2: Learn fundamental cryptography @@ -14,51 +16,54 @@ Exercises are progressive in difficulty. They are designed to learn the fundamen - Quest 4: Scripted interactions with the Ethereum blockchain - Quest 5: Create a complete decentralised application - Raid 1: Create a signing service -- Quest 6: Create a first token -- Quest 7: An NFT based DApp +- Quest 6: Create your first token +- Quest 7: Develop an NFT based DApp - Quest 8: Learn the basics of DeFi and security - Quest 9: Explore other blockchains -- Raid 1: Create a tracking service +- Raid 2: Create a tracking service + +For more details, see the [introductions](introductions.md) for each quest and the corresponding [subjects](https://github.com/01-edu/public/tree/master/subjects/blockchain). -For more details see the [introductions](introductions.md) and the [subjects](https://github.com/01-edu/public/tree/master/subjects/blockchain) ## Tests βš™οΈ -Within the `tests/` folder, `run.sh` builds a docker image and runs the tests. Solutions are expected to be in a `tests/student` folder. For each available solution file, the appropriate test will be launched individually. The docker daemon or docker desktop needs to be running. +Within the `tests/` folder, `run.sh` builds a docker image and runs the tests. Solutions are expected to be in a `tests/student` folder. For each available solution file, the appropriate test will be launched individually. The Docker daemon or Docker Desktop needs to be running. +### Run tests collectively ```shell cd tests ./run.sh ``` -The final output should be similar to: +The final output will provide a summary of your test results as well as performance indicators. For example: ```shell -artists-do-work βœ… 4, basic-swap βœ… 4, basic-wallet βœ… 0, buy-tickets βœ… 2, check-document βœ… 6, connect-to-metamask βœ… 5, donation βœ… 6, eventful-token βœ… 3, fun-and-profit βœ… 3, -tests ran:9 in avg 4261 ms +artists-do-work βœ… 4, basic-swap βœ… 4, basic-wallet βœ… 0, buy-tickets βœ… 2, check-document βœ… 6, +connect-to-metamask βœ… 5, donation βœ… 6, eventful-token βœ… 3, fun-and-profit βœ… 3 +tests ran: 9 in 4261 ms on average. ``` -It is also possible to run tests individually (with debug mode on): - +### Run tests individually +It is possible to run a test individually by specifying the exercise. Debug mode will be enabled by default. ```shell +cd tests ./run.sh retrieve-block-date ``` -### Commands - -The following underlying commands can be launched individually from `tests/` folder: +### Underlying commands +The following underlying commands can be executed from the `tests/` folder: ```shell # build the docker image docker build . -t blockchain -# Run a BTC test +# Run a specific Bitcoin test docker run --read-only --network none --memory 500M --user 1000:1000 -e DEBUG=true -e EXERCISE=retrieve-block-date --env HOME=/jail --env TMPDIR=/jail --workdir /jail --tmpfs /jail:size=100M,noatime,exec,nodev,nosuid,uid=1000,gid=1000,nr_inodes=5k,mode=1700 --volume $PWD/student.all:/jail/student:ro blockchain:latest # Explore the docker image docker run -it --entrypoint /bin/bash blockchain:latest ``` -## Authors ✍️ +## Author ✍️ Xavier LavayssiΓ¨re - [πŸ™](https://github.com/Xalava) [🐦](https://twitter.com/xavierlava)