Skip to content

Commit

Permalink
adding stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
glasgowm148 committed Mar 1, 2023
1 parent 4fa5ba0 commit 740bea0
Show file tree
Hide file tree
Showing 11 changed files with 83 additions and 122 deletions.
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,12 @@ mkdocs serve
- [x] Split and tidy scaling page
- [x] Missing text bottom of modes of operation
- [x] Tidy Light Nodes page (on learn the basics)
- [x] SigmaRust and ergpy added to frameworks index
- [x] ergopuppet to ergoscript tooling
- [ ] Tidy and clarify the Multi-Stage contract/transaction pages.
- [ ] Move more research papers into markdown so they are indexed and searchable.
- [ ] Move more research papers into markdown, so they are indexed and searchable.
- [ ] Transfer over any remaining information from ergonaut.space
- [ ] Finish moving over ErgoTree specification
- [ ] Finish moving over ErgoTree specification
- [ ] Improve lang index pages
- [ ] off-chain bots
- [ ] box index -> registers index
6 changes: 2 additions & 4 deletions docs/dev/oc/ergo_utilities.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# Ergo Utilities
# Rust Utilities

[ergo-utilities-rust](https://github.com/ergoplatform/ergo-utilities-rust) houses experimental libraries for writing off-chain Ergo code in Rust.


## Current Libraries

### Ergo Off-Chain Utilities
Utilities related to encoding/hashing/serialization values/data useful for off-chain applications.
3 changes: 3 additions & 0 deletions docs/dev/scs/puppet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Ergo Puppet

[ergo-puppet](https://github.com/dav009/ergo-puppet) is an upgrade on the [ergo playground](https://github.com/ergoplatform/ergo-playgrounds). It lets you play and unit test Ergo contracts offchain. Puppet uses as much of AppKit as possible, meaning you should be able to test your code with Puppet with no changes.
4 changes: 4 additions & 0 deletions docs/dev/stack/ergpy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Ergpy

- [ergpy](https://github.com/mgpai22/ergpy) is a python-jvm wrapper for interacting with the Ergo blockchain.

14 changes: 10 additions & 4 deletions docs/dev/stack/frameworks.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
# Frameworks

There are several Standard Development Kits and Frameworks available on Ergo.
There are several Standard Development Kits and Frameworks available on Ergo with the main ones being:

- [AppKit](appkit.md) is the primary SDK, and the entry-point for JVM developers. (Java, Scala, Kotlin, Mobile)
- [Headless dApp Framework](headless.md) is a Rust framework for developing Ergo Headless dApps. The Ergo HDF provides developers with the first portable UTXO-based headless dApp development framework on any blockchain.
- [RustKit](rustkit.md) is also in development, which aims to bring the Rust experience in-line with the JVM one.
- [SigmaRust](sigma-rust.md) is an alternative and simple implementation of ErgoTree interpreter and transaction building tools.
- [Fleet SDK](fleet.md) lets you easily create Ergo transactions with a pure JS library.

Some others are

- [ergpy](ergpy.md) is a python-jvm wrapper for interacting with the Ergo blockchain.
- [Mosaik](mosaik.md) is a *UI system for Ergo dApps*
- [JSON dApp Environment](jde.md)
- [RustKit](rustkit.md) is also in development, which aims to bring the Rust experience in-line with the JVM one.
- [Headless dApp Framework](headless.md) is a Rust framework for developing Ergo Headless dApps. The Ergo HDF provides developers with the first portable UTXO-based headless dApp development framework on any blockchain.
- [JSON dApp Environment](jde.md)
20 changes: 19 additions & 1 deletion docs/dev/tutorials.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,22 @@

## ErgoScript

- [ErgoScript By Example](ergoscript.md)
### Courses

- [ErgoScript 101 Crash Course](https://docs.google.com/presentation/d/10gYO82z_7qloRrFOcCxTFuzpP40IImPyIKMV2ZFd9M4/edit#slide=id.p) (Slides)
- [Learn ErgoScript By Example Via The Ergo Playground with Robert Kornacki (Video)](https://www.youtube.com/watch?v=8l2v1asHgyA)
- [The ErgoScript Developer Course from DeCo Education](https://github.com/DeCo-Education/ErgoScript-Developer-Course)
- [Deco Education: 2022 Script Class](https://www.youtube.com/watch?v=qR0_k7VH6KI&list=PLopsKGshj0B4DfFnS-pvriZhba050eaXu)


### Tutorials

- [ErgoScript by Example Repository](https://github.com/ergoplatform/ergoscript-by-example)
- [Testing Ergo Contracts Off-chain](https://github.com/anon-real/contract-testing)


### Advanced Tutorials

- [Advanced ErgoScript Tutorial](https://ergoplatform.org/docs/AdvancedErgoScriptTutorial.pdf)
- [ErgoScript tutorial](https://ergoplatform.org/docs/ErgoScript.pdf)

70 changes: 4 additions & 66 deletions docs/dev/wallet/payments/ledger.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,79 +5,17 @@ tags:

# Ledger

## Side Loading

The Ledger application is currently being reviewed by the Ledger team and should be available via the Ledger Manager shortly, in the meantime you can follow these steps below to side-load the application onto your Ledger S or Ledger S+ device.



### Download & Extract

Go to the ['Actions'](https://github.com/tesseract-one/ledger-app-ergo/actions/runs/3613041599) section on the ledger-app-ergo repository and scroll down to **Artifacts**.

Click on the artifact matching your ledger device (i,e. ergo-app-debug-nanos) and it should start downloading.

Next, open your command line and navigate to the extracted Ledger App folder.

### Setup

**install virtualenv**

=== "OSX"

```
sudo apt install python3-pip
pip3 install virtualenv
```

=== "Windows"

```
py -m ensurepip –upgrade
pip3 install virtualenv
```

**Run & activate**

=== "OSX"

```
virtualenv -p python3 ledger
source ledger/bin/activate
pip3 install ledgerblue
```

=== "Windows"

```
python -m venv .\venv
venv\Scripts\activate
pip install ledgerblue
```



### Deploy

Now it's time to deploy the binary file `app.hex` into the Ledger device:

Make sure your ledger is connected, but the Ledger Manager is **closed**.

```
python -m ledgerblue.loadApp --targetId 0x31100004 --apdu --tlv --fileName app.hex --appName Ergo --appFlags 0xe0
```

While the process is running, follow the instructions on the device screen to validate and accept the app installation.

## Developer mode

The Ledger team is currently reviewing the application; the complete version is expected to be available soon via the Ledger Manager. However, in the interim, you can enable developer mode on your Ledger device if you wish to experiment with the pre-release version.


## Resources
> For wallet developers

There is a [Binding Library](https://github.com/anon-br/ledgerjs-hw-app-ergo) available, for anything else, you will need to implement a biding API using [this documentation](https://docs.google.com/document/d/1z8nIlRmPhwcKzyZ2jZYYkaFDtLt8pgvnRWrT5zJJ_Tw/edit?pli=1#heading=h.hag83gqtujji)
For wallet developers

- There is a [Binding Library](https://github.com/anon-br/ledgerjs-hw-app-ergo) available, for anything else, you will need to implement a biding API using [this documentation](https://docs.google.com/document/d/1z8nIlRmPhwcKzyZ2jZYYkaFDtLt8pgvnRWrT5zJJ_Tw/edit?pli=1#heading=h.hag83gqtujji)
- [ledger4j - Ledger HID Communityions Library](https://github.com/aionnetwork/ledger4j)
- [tesseract-one/ledger-app-ergo](https://github.com/tesseract-one/ledger-app-ergo)
- [lib-ledger-core](https://github.com/LedgerHQ/lib-ledger-core)
42 changes: 11 additions & 31 deletions docs/dev/wallets.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,18 @@ Note that wallets are supported by third parties, we only provide the informatio

> Nautilus is a privacy-focused web-based wallet
Ledger support is currently in development, this can be tested with Nautilus if you have a Ledger Nano **S**.
Ledger support is currently in available [in developer mode for ledger](ledger.md)

### Ergo Wallet (Mobile)
### Ergo Wallet (Android) / Terminus (iOS)

Please see the official wallet [wallet page](https://ergoplatform.org/en/mobile-wallets/).
Please see the official [wallet page](https://ergoplatform.org/en/mobile-wallets/).

### Minotaur
### Minotaur (Multi-Platform)

> The first multi-platform wallet for ergo.
Minotaur is a multi-platform dApp wallet with _dApp stack support_, allowing any dApp to be embedded directly in the app.

Minotaur is a multi-platform dApp wallet that has *dApp stack support* - Allowing any dApp to be embedded directly in app.


### SAFEW
### SAFEW (Web)

> Simple And Fast Ergo Wallet is the most feature-rich wallet, best suited for developers. It has several features such as
Expand All @@ -45,41 +43,23 @@ Minotaur is a multi-platform dApp wallet that has *dApp stack support* - Allowin
- Transaction builder in Expert mode (mint/burn/etc)
- Chained transactions

More information available on their [GitHub](https://github.com/ThierryM1212/SAFEW)
More information is available on their [GitHub](https://github.com/ThierryM1212/SAFEW)

### Satergo (Desktop)

> Desktop wallet for the cryptocurrency Ergo with embedded node functionality. Available at [satergo.com](https://www.satergo.com)
Why use Satergo?

- **Secure**: Everything is encrypted and stored with the program
- **Independent**: Host your own node if you want to
- **Invaluable**: Contribute to the Ergo network
- **Portable**: Does not depend on any other software being installed
- **Cross-platform**: Supports all major desktop platforms
- **Fully featured**: Has many features but still easy to use
- **Deterministic**: Know what runs on your computer
- **Light**: Usable in slow or portable operating system environments

**Supported platforms**

- Windows (x64)
- Linux (x64 and aarch64)
- Mac (x64 and aarch64)
- Universal (Java 17+)

More information available on their [GitHub](https://github.com/Satergo/Satergo)
More information is available on their [GitHub](https://github.com/Satergo/Satergo)


### [Node](install.md) (Desktop)
### [Node](install.md) (Server)

The full node comes with a wallet panel interface.
The full node comes with a wallet panel interface. This is generally only recommended for developers.




## Misc
## Others

- [tesseract-one/ledger-app-ergo](https://github.com/tesseract-one/ledger-app-ergo)
- [anon-br/ledgerjs-hw-app-ergo](https://github.com/anon-br/ledgerjs-hw-app-ergo)
Expand Down
22 changes: 13 additions & 9 deletions docs/mining/governance.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
# Governance

Ergo Miners have the ability to adjust the block size which increases the amount of transactions per block. This increases potential rewards but also adds additional storage requirements. adjust the emission macroeconomics, meaning the long term economic security of the protocol is up to miners to decide.
Many parameters in Ergo can be changed on-the-fly via miners voting. Things like instructions costs, computational cost limit per block, block size limit, storage fee factor, and block version. Meaning the long-term economic security of the protocol is up to miners to decide.

In addition to the protocol parameters above that can be changed via on-chain miner voting, most things on Ergo can be changed via a soft-forking protocol (90% support required). This excludes critical changes such as changing the max supply.
In addition to the protocol parameters [listed below](#parameters-table) that can be changed via on-chain miner voting, most things on Ergo can be changed via a soft-forking protocol (90% support required). This excludes critical changes such as changing the max supply.

Many parameters can be changed on-the-fly via miners voting, such as instructions costs, computational cost limit per block, block size limit, storage fee factor, block version, etc.
Voting for the block version lasts **32 epochs** and requires more than **90 percent** of the miners to vote for the change. A simple majority is enough for less critical changes such as block size limit. We will further refer to the changes of the first kind as 'foundational changes', and we refer to the changes of the second kind as 'everyday changes'.

Voting for the block version lasts 32 epochs and requires more than 90 percent of the miners to vote for the change. A simple majority is enough for less critical changes such as block size limit. We will further refer to the changes of the first kind as foundational changes, and we refer to the changes of the second kind as everyday changes. Per block, a miner can vote for two everyday changes and one foundational change, with the votes to be included in the block's header.
> Per block, a miner can vote for two everyday changes and one foundational change, with the votes to be included in the block's header.
To vote **Yes** and propose a change in the first block of an epoch, a miner is publishing the identifier of the change directly in the block header. To vote **No** (or avoid voting at all, which is the same), a miner writes zero value instead of a corresponding byte (another option is to provide a vote identifier not considered within the epoch).
- To vote **Yes** and propose a change in the first block of an epoch, a miner publishes the identifier of the change directly in the block header.
- To vote **No** (or avoid voting at all, which is the same), a miner writes zero value instead of a corresponding byte (another option is to provide a vote identifier not considered within the epoch).

## System constants:

Expand All @@ -25,13 +26,15 @@ To vote **Yes** and propose a change in the first block of an epoch, a miner is

## Parameters table

> Try out these parameters on [deadit.github.io/paizo/](https://deadit.github.io/paizo/)
The following table describes vote identifiers, default values (during launch), possible steps, and minimum and maximum values.

The following table describes vote identifiers, default values (during launch), possible steps, and minimum and maximum values. If the step is not defined in the table, its value is defined as $\max(\lfloor current\_value / 100 \rfloor, 1)$. If the minimum value for a parameter is not defined, it equals zero. If the maximum value is not defined, it equals `1,073,741,823`.
- If the step is not defined in the table, its value is defined as $\max(\lfloor current\_value / 100 \rfloor, 1)$.
- If the minimum value for a parameter is not defined, it equals zero.
- If the maximum value is not defined, it equals `1,073,741,823`.

A miner includes a parameter identifier ($id$) into the block header to propose or vote for increasing a parameter. If the miner supports decreasing the parameter, he includes ($-id$) into the block header.
A miner includes a parameter identifier ($id$) into the block header to propose or vote for increasing a parameter. If the miner supports decreasing the parameter, they would include ($-id$) into the block header.

> Try out these parameters on [deadit.github.io/paizo/](https://deadit.github.io/paizo/)
| ID | Description | Default | Step | Min | Max |
|---|---|---|---|---|---|
Expand All @@ -47,6 +50,7 @@ A miner includes a parameter identifier ($id$) into the block header to propose

Parameter values are to be written into the extension section on the first block of a voting epoch,
that is, in the extension of a block when its $height\,mod\,1024 = 0$.

Parameters for the initial moment of time~$(height = 1)$ are hardcoded.

## Proposing a change and voting for it
Expand Down
9 changes: 6 additions & 3 deletions docs/node/install/node-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,10 @@ kill -9 $(lsof -t -i:9030)
```


## Running the node

### Minimum Requirements

## Prerequisites

## Minimum Requirements

### Java

Expand All @@ -58,6 +57,10 @@ The node uses Java so should work across all operating systems. You can even run

> Note that due to the intensive disk I/O, 4-6GB of ram is recommended with a fast SSD, running with the `-Xmx4G` flag on JVM9/11

## Running the node


### Commands

Please see the section on [swagger](../swagger.md)
Expand Down
6 changes: 4 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -320,8 +320,8 @@ nav:
- APIs: dev/stack/api.md
- Off-Chain:
- Oracle-Core: dev/oc/oracle.md
- Spectrum.DEX off-chain services: dev/oc/dex_bots.md
- Ergo Utilities Rust: dev/oc/ergo_utilities.md
- Off-Chain Bots: dev/oc/dex_bots.md
- Rust Utilities: dev/oc/ergo_utilities.md
- Developer Tooling:
- Programming Languages:
- JVM:
Expand All @@ -345,6 +345,7 @@ nav:
- SigmaRust: dev/stack/sigma-rust.md
- Fleet (JS): dev/stack/fleet.md
- Others:
- Ergpy: dev/stack/ergpy.md
- RustKit: dev/stack/rustkit.md
- Mosaik:
- dev/stack/mosaik/intro.md
Expand Down Expand Up @@ -406,6 +407,7 @@ nav:
- Tooling:
- Debugging: dev/scs/debugging.md
- FlowCards: dev/scs/flowcards.md
- ErgoPuppet: dev/scs/puppet.md
- ErgoScala: dev/stack/ergoscala.md
- Compiler: dev/stack/compiler.md
- Kiosk: dev/stack/kiosk.md
Expand Down

0 comments on commit 740bea0

Please sign in to comment.