Browse Source

fix(blockchain subjects):

- move h2 inside subjects to h3 to make them render in the platform
pull/2053/head
nprimo 12 months ago committed by Niccolò Primo
parent
commit
96e9965bfb
  1. 6
      subjects/blockchain/decentralized-finance/README.md
  2. 17
      subjects/blockchain/exploring-blockchains/README.md
  3. 20
      subjects/blockchain/financial-instruments/README.md
  4. 2
      subjects/blockchain/financial-instruments/audit/README.md
  5. 10
      subjects/blockchain/node-dashboard/README.md
  6. 4
      subjects/blockchain/node-dashboard/audit/README.md
  7. 6
      subjects/blockchain/non-fungible-cats/README.md

6
subjects/blockchain/decentralized-finance/README.md

@ -20,7 +20,7 @@ First, we will create a simple stablecoin, following the ERC20 standard and an o
---
## Exercise 1: Stablecoin
### Exercise 1: Stablecoin
The purpose of this exercise is to create a fully collateralized stablecoin. We will use an oracle smart contract to get the current value of any volatile token.
@ -54,7 +54,7 @@ And, the keystone, we allow any user to punish users that issued more tokens tha
---
## Exercise 2: Lending Platform
### Exercise 2: Lending Platform
We will create a platforms that allow borrowers tokens from lenders in a decentralized manner around a volatile and a stable token. Lenders will earn a fixed yield of 5% per year.
@ -92,7 +92,7 @@ _Optional provide a web interface for the lending platform_
---
## Exercise 3: Tests and Coverage
### Exercise 3: Tests and Coverage
To produce adequate tests is the first obvious step to start applying good security measures. We will create the tests for the stablecoin smart contract.

17
subjects/blockchain/exploring-blockchains/README.md

@ -19,7 +19,7 @@ In this course, we will focus on two solutions provided by the Hyperledger proje
---
## Exercise 1: Private Network
### Exercise 1: Private Network
Besu in an alternative Ethereum client that is compatible with Ethereum mainnet. It facilitates the deployment of private networks. Will we use the QBFT consensus algorithm, a Proof of Authority Byzantine Fault Tolerant algorithm
@ -54,8 +54,16 @@ Network/
├ keys.json
```
<<<<<<< HEAD
## Resources
=======
### Resources
> > > > > > > cfdf326c (fix(blockchain subjects):)
- [Private network explanation](https://ethereum.org/en/developers/docs/networks/#private-networks)
- [Launch a private network with Besu tutorial](https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-QBFT-Network/)
- [Overview on industrial usage of private network](https://www.sciencedirect.com/science/article/pii/S209672092200029X)
@ -64,7 +72,7 @@ Network/
---
## Exercise 2: Clillet
### Exercise 2: Clillet
The goal of this raid is to create a fully functional command line wallet for a blockchain of your choice. You can choose any of the major alternative blockchains: Solana, Tezos, Poladot, Cosmos... The executable `clillet` must follow and implement the help description below. Our wallet consists of the following subcommands
@ -76,7 +84,7 @@ The goal of this raid is to create a fully functional command line wallet for a
The documentation must provide an endpoint to connect to a blockchain node of the testnet network with necessary information to create an account to access this endpoint if needed and to retrieve tokens from a faucet.
## Output and functionalities
### Output and functionalities
```console
$ clillet --help
@ -98,7 +106,6 @@ FLAGS:
-V, --version
Prints version information
COMMANDS:
generate Generates a new wallet and prints the mnemonic
import <file> Imports a wallet from a file
@ -108,7 +115,7 @@ COMMANDS:
send <destination> <amount> sends assets to a destination
```
## Deliverable
### Deliverable
The project must provide an executable file that complies with the specifications

20
subjects/blockchain/financial-instruments/README.md

@ -8,11 +8,11 @@ In that context, we will build a financial instruments platform. First, we will
In this project, you are free to use the blockchain, technologies, and tools that you want. However, the project must offer complete documentation.
## Private network
### Private network
The network must have a minimum of 3 validating nodes. A script must facilitate the deployment of the network. You can reuse prior work.
## Financial instruments
### Financial instruments
Three categories of financial instruments can be exchanged on the platform. Functionally, each asset is a type of smart contract
@ -20,7 +20,7 @@ Three categories of financial instruments can be exchanged on the platform. Func
- **Shares**: Shares are a fungible token for each company. Occasionally, its issuer can do a dividend payout. In that case, the issuer sends the stablecoin to the share contract, and each owner can retrieve proportionally to its possessions.
- **Bonds: **A smart contract represents all the outstanding bonds from an issuer. Each bond has a unique serial number, a current principal, an interest rate, an issuance date, a maturity date, a current owner, and if it has been repaid. For simplicity, we assume each bond to be issued for one year, requiring only one payment.
## Populating
### Populating
In order to facilitate tests and audits, we will populate those financial instruments. An interactive script is available to create several addresses and deploy smart contracts.
@ -35,7 +35,7 @@ Additionally, the script asks for two Ethereum addresses, Aya and Beatriz.
- Aya should receive 200 TRG, 10 CLV and 2 GOV.
- Beatriz should receive 150 TRV, 20 ROO and 5 GOV.
## Marketplace
### Marketplace
The marketplace consists of
@ -45,7 +45,7 @@ The marketplace consists of
Our model is hybrid, as order execution is centralised, but assets are not in full custody of the platform.
## Web interface
### Web interface
The interface must consist of a homepage, an asset page, a portfolio page, and an FAQ page.
@ -139,7 +139,7 @@ A visualization part allows the user to have a sense of his possession in TRG. F
An FAQ page that explains how to use the platform
## The server
#### The server
The server serves the fronted using the database information, exposes an API for the frontend and interacts with the blockchain. Its API must offer a function to monitor deposits, triggered from the user interface, that verifies on the blockchain the transaction that sent the funds and another one to authorise withdrawals.
@ -149,23 +149,23 @@ The database contains
- A table of the users of the platform registered after the first connection. They must provide their legal name and upload a “passport” picture. No check is made when login in, but the picture is stored for future reference
- A table of all ongoing sell and buy offers on the platform
## The vault smart contract
#### The vault smart contract
The vault smart contract will receive the various financial assets. In a simple form, it includes an `operateWithdrawal(user, asset, amount)` reserved to the platform issuer allows the platform to send assets to the user, after verifying that the funds were theirs and that there are no pending orders.
_Optionally, a more sophisticated security model can be proposed._
## Trade execution
#### Trade execution
If a user, Aya, wants to sell CLV shares, she will go to the dedicated CLV page. On the panel on the right, she will select a number of shares, for instance 5, among her total number of shares, and a price, for instance, 9. The shares will then be transferred to the smart contract of the platform. Her address however will be approved to retrieve. When a user, Beatriz, wants to buy 3 CLV shares at the current market price, he selects this option on the panel. The platform will select the best offers. In this example, it will retain the 3 shares of Aya as available. Then, the platform will update the balance of both users in its database.
The platform must handle all the cases where various offers must be used to fulfil a demand.
## Withdrawal
### Withdrawal
At any point, the users can ask to withdraw their funds. On their portfolio page, users can click on assets that are on the platform. The platform server verifies that the assets are not part of any pending offer and send an `operateWithdrawal()` to the vault smart contract. Once validated, the frontend updates the user information.
## Documentation
### Documentation
In addition to the FAQ on the website explaining functionality as mentioned in the interface section, we need a full developer documentation. It must explain

2
subjects/blockchain/financial-instruments/audit/README.md

@ -34,7 +34,7 @@
##### As the first user, Aya, opens the CLV page and offers to sell 10 CLV at 9 TRG
###### Does the interface reflect the amount of CLV available to Aya?
###### Does the interface reflect the amount of CLV available to Aya?
###### Does the order validation trigger a transfer of funds?

10
subjects/blockchain/node-dashboard/README.md

@ -2,7 +2,7 @@
Blockchain nodes participate in a common peer-to-peer network retrieving information, executing and validating transactions and blocks. However, software clients differ in their functionalities and resource consumption. The purpose of this project is to create a tool, `benchy` that can launch, monitor and benchmark Ethereum networks.
## launch-network
### launch-network
At first, we will focus on deploying a private Ethereum network while monitoring the nodes. The nodes can be launched directly or within containers.
@ -12,7 +12,7 @@ At first, we will focus on deploying a private Ethereum network while monitoring
The network should be launched with the command `benchy launch-network`. The nodes should be launched in the background and the command should return immediately.
## Infos
### Infos
Using the `infos` command, Benchy should display information on each node, in the terminal or in a webpage. The information must include:
@ -22,7 +22,7 @@ Using the `infos` command, Benchy should display information on each node, in th
- Their current CPU and memory consumption (Hint: the outputs of commands such as `docker stats` or `ps` can be used)
- Their corresponding Ethereum address and its balance.
## Scenario
### Scenario
To analyze our network, we need to simulate some transactions. Benchy should propose the following scenarios available with the command `benchy scenario X`. Each scenario must provide feedback on its execution, including updated balances after transfers. 0. Initialise the network by letting it run for a few minutes. Validating nodes must have Eth available as reward or part of the initial configuration.
@ -30,11 +30,11 @@ To analyze our network, we need to simulate some transactions. Benchy should pro
2. Cassandra deploys an ERC20 smart contract with 3000 tokens BY, and gives 1000 to Driss and 1000 to Elena.
3. Cassandra tries to send 1 ETH to Driss and immediately tries to cancel it by sending a transaction with a higher fee to send it to Elena.
## temporary-failure
### temporary-failure
To study our network further, benchy can disrupt the current network by randomly stopping one node of the network. The command “temporary-failure X” stops the node X for 40 seconds and puts it back online.
## Optional
### Optional
- _an option `-u [time] runs any command continuously each ‘time’ in seconds, 60 by default._
- _Add the possibility to connect one node to a testnet network _

4
subjects/blockchain/node-dashboard/audit/README.md

@ -26,7 +26,7 @@
###### Does the command provide feedback?
###### Does the `infos` command show the updated ETH balance?
###### Does the `infos` command show the updated ETH balance?
###### Does the `infos` command displays transactions in the mempool?
@ -50,7 +50,7 @@
###### Does it appear to be up to date a couple of minutes later?
#### Bonus
#### Bonus
###### +Does the `-u` option allow you to launch each command with a regular update?

6
subjects/blockchain/non-fungible-cats/README.md

@ -36,7 +36,7 @@ In addition, each token is linked to an Uniform Resource Identifier (URI) where
---
## Exercise 1: Napping Cats
### Exercise 1: Napping Cats
In this exercise we will create a basic NFT smart contract, and use it to instantiate an NFT collection with some custom functions
@ -76,7 +76,7 @@ _Optionally, the price for new tokens is an auction. It starts at 100x of the in
---
## Exercise 2: Showcase
### Exercise 2: Showcase
We will now be able to display our NFT collection on a website and allow user to use the interface to buy and sell tokens.
@ -103,7 +103,7 @@ We will now be able to display our NFT collection on a website and allow user to
---
## Exercise 3: Automated Reveal (Optional)
### Exercise 3: Automated Reveal (Optional)
In some auctions, NFT images are only revealed once purchased.

Loading…
Cancel
Save