mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2024-11-28 01:45:22 +03:00
Improve style consistency in root directory docs files (#4493)
* Improve style consistency * black python required blank Co-authored-by: Nikolaj Kuntner <>
This commit is contained in:
parent
080e830bb1
commit
2faab1ea83
@ -12,14 +12,14 @@ the virtual environment.
|
||||
sh install-timelord.sh
|
||||
```
|
||||
|
||||
If the compile fails, it's likely due to a missing dependency.
|
||||
If the compile fails, it's likely due to a missing dependency. The script
|
||||
[install-timelord.sh](https://github.com/Chia-Network/chia-blockchain/blob/main/install-timelord.sh)
|
||||
attempts to install required build dependencies for Linux and MacOS before
|
||||
invoking pip to build from the source python distribution of chiavdf.
|
||||
|
||||
The `install-timelord.sh` install script leverages two environmental variables
|
||||
that the chiavdf wheels can use to specify how to build. `vdf_client` is the
|
||||
service that the Timelord uses to run the VDF and prove the Proof of Time.
|
||||
that the chiavdf wheels can use to specify how to build. The service that the
|
||||
Timelord uses to run the VDF and prove the Proof of Time is `vdf_client` and
|
||||
`vdf_bench` is a utility to get a sense of a given CPU's iterations per second.
|
||||
|
||||
- To build vdf_client set the environment variable BUILD_VDF_CLIENT to "Y".
|
||||
|
@ -1,12 +1,11 @@
|
||||
# Introduction
|
||||
|
||||
|
||||
Welcome to the chia-blockchain project!
|
||||
We are happy that you are taking a look at the code for Chia, a proof of space and time cryptocurrency.
|
||||
|
||||
A lot of fascinating new cryptography and blockchain concepts are used and implemented here.
|
||||
This repo includes the code for the Chia full node, farmer, and timelord (in chia folder), which are all written in python.
|
||||
It also includes a verifiable delay function implementation that it imports from the [chiavdf repo](https://github.com/Chia-Network/chiavdf) (in c/c++), and a proof of space implementation that it imports from the [chiapos repo](https://github.com/Chia-Network/chiapos). BLS signatures are imported from the [bls-signatures repo](https://github.com/Chia-Network/bls-signatures) as blspy. There is an additional dependency on the [chiabip158 repo](https://github.com/Chia-Network/chiabip158). For major platforms, binary and source wheels are shipped to PyPI from each dependent repo and then chia-blockchain can pip install those from PyPI or they can be prepackaged as is done for the Windows installer. On unsupported platforms, pip will fall back to the source distributions to be compiled locally.
|
||||
It also includes a verifiable delay function implementation that it imports from the [chiavdf repo](https://github.com/Chia-Network/chiavdf) (in c/c++), and a proof of space implementation that it imports from the [chiapos repo](https://github.com/Chia-Network/chiapos). BLS signatures are imported from the [bls-signatures repo](https://github.com/Chia-Network/bls-signatures) as blspy. There is an additional dependency on the [chiabip158 repo](https://github.com/Chia-Network/chiabip158). For major platforms, binary and source wheels are shipped to PyPI from each dependent repo. Then chia-blockchain can pip install those from PyPI or they can be prepackaged as is done for the Windows installer. On unsupported platforms, pip will fall back to the source distributions, to be compiled locally.
|
||||
|
||||
If you want to learn more about this project, read the [wiki](https://github.com/Chia-Network/chia-blockchain/wiki), or check out the [green paper](https://www.chia.net/assets/ChiaGreenPaper.pdf).
|
||||
|
||||
@ -17,16 +16,16 @@ Please review this [diagram](https://drive.google.com/file/d/1r7AXTrj7gtD0Xy-9Bt
|
||||
We would be pleased to accept code contributions to this project.
|
||||
As we have now released, the main priority is improving the mainnet blockchain.
|
||||
You can visit our [Trello project board](https://trello.com/b/ZuNx7sET) to get a sense of what is in the backlog.
|
||||
Generally things to the left are in progress or done. Some things go through "Coming up soon" but some will come directly out of other columns.
|
||||
Usually the things closer to the top of each column are the ones that will be worked on soonest.
|
||||
Generally, things to the left are in progress or done. Some things go through "Coming up soon", but some will come directly out of other columns.
|
||||
Usually, the things closer to the top of each column are the ones that will be worked on soonest.
|
||||
If you are interested in cryptography, math, or just like hacking in python, there are many interesting problems to work on.
|
||||
Contact any of the team members on [Keybase](https://keybase.io/team/chia_network.public), which we use as the main communication method and you can comment on any Trello card.
|
||||
Contact any of the team members on [Keybase](https://keybase.io/team/chia_network.public), which we use as the main communication method. You can also comment on any Trello card.
|
||||
|
||||
We ask that external contributors create a fork of the `main` branch for any feature work they wish to take on.
|
||||
|
||||
Members of the Chia organization may create feature branches from the `main` branch.
|
||||
|
||||
In the event an emergency fix is required for the release version of Chia, members of the chia organization will create a feature branch from the current release branch `1.0.0`
|
||||
In the event an emergency fix is required for the release version of Chia, members of the Chia organization will create a feature branch from the current release branch `1.0.0`.
|
||||
|
||||
## Branching Strategy
|
||||
|
||||
@ -35,19 +34,19 @@ In the event an emergency fix is required for the release version of Chia, membe
|
||||
1. All changes go into the main branch.
|
||||
2. Main is stable at all times, all tests pass.
|
||||
3. Features (with tests) are developed and fully tested on feature branches, and reviewed before landing in main.
|
||||
4. Chia Network's nodes on the public testnet are running latest version x.y.z
|
||||
4. Chia Network's nodes on the public testnet are running the latest version `x.y.z`.
|
||||
5. The `main` branch will have a long running `beta testnet` to allow previewing of changes.
|
||||
6. Pull Request events may require a `beta testnet` review environment, at the moment this is at the discretion of the reviewer.
|
||||
7. Hotfixes land in the release branch they fix, and all later versions. (this will be achieved by regularly merging from 1.0.x -> main).
|
||||
8. Hotfixes that are emergency fixes for a specific version will be merged into, and removed from down-stream branches. This allows future merges without issues.
|
||||
6. Pull Request events may require a `beta testnet` review environment. At the moment this is at the discretion of the reviewer.
|
||||
7. Hotfixes land in the release branch they fix, and all later versions. (This will be achieved by regularly merging from `1.0.x` to main).
|
||||
8. Hotfixes that are emergency fixes for a specific version will be merged into (???), and removed from down-stream branches. This allows future merges without issues.
|
||||
9. Whoever develops a hotfix is also responsible for merging it into all later branches.
|
||||
10. A release branch (e.g. 1.1.x) will be cut prior to a release, in order to separate work that should go into the release from work going into the next major release (main branch). (this pre-release branch will also have a `beta testnet` spun up for preview)
|
||||
11. All Merge events will be squashed and merged.
|
||||
10. A release branch (e.g. `1.1.x`) will be cut prior to a release, in order to separate work that should go into the release from work going into the next major release (main branch). (This pre-release branch will also have a `beta testnet` spun up for preview).
|
||||
11. All Merge events will be squash merged.
|
||||
|
||||
## Run tests and linting
|
||||
|
||||
The first time the tests are run, BlockTools will create and persist many plots. These are used for creating
|
||||
proofs of space during testing. The next time tests are run, this won't be necessary.
|
||||
proofs of space during testing. The next time tests are run, this will not be necessary.
|
||||
|
||||
```bash
|
||||
. ./activate
|
||||
@ -56,20 +55,21 @@ black chia tests && mypy chia tests && flake8 chia tests
|
||||
py.test tests -v --durations 0
|
||||
```
|
||||
|
||||
Black is used as an automatic style formatter to make things easier, and flake8 helps ensure consistent style.
|
||||
Mypy is very useful for ensuring objects are of the correct type, so try to always add the type of the return value, and the type of local variables.
|
||||
The [black library](https://black.readthedocs.io/en/stable/) is used as an automatic style formatter to make things easier.
|
||||
The [flake8 library](https://readthedocs.org/projects/flake8/) helps ensure consistent style.
|
||||
The [Mypy library](https://mypy.readthedocs.io/en/stable/) is very useful for ensuring objects are of the correct type, so try to always add the type of the return value, and the type of local variables.
|
||||
|
||||
If you want verbose logging for tests, edit the tests/pytest.ini file.
|
||||
If you want verbose logging for tests, edit the `tests/pytest.ini` file.
|
||||
|
||||
## Configure VS code
|
||||
|
||||
1. Install Python extension
|
||||
2. Set the environment to ./venv/bin/python
|
||||
1. Install python extension
|
||||
2. Set the environment to `./venv/bin/python`
|
||||
3. Install mypy plugin
|
||||
4. Preferences > Settings > Python > Linting > flake8 enabled
|
||||
5. Preferences > Settings > Python > Linting > mypy enabled
|
||||
6. Preferences > Settings > Formatting > Python > Provider > black
|
||||
7. Preferences > Settings > mypy > Targets: set to ./chia and ./tests
|
||||
7. Preferences > Settings > mypy > Targets: set to `./chia` and `./tests`
|
||||
|
||||
## Configure Pycharm
|
||||
|
||||
@ -93,13 +93,13 @@ Following the release of `1.1.0`, the official `testnet` will include all change
|
||||
Prior to proposing changes to `main`, proposers should consider if running a `beta testnet` review environment will make the reviewer more effective when evaluating a change.
|
||||
Changes that impact the blockchain could require a review environment before acceptance into `main`. This is at the discretion of the reviewer.
|
||||
Chia organization members have been granted CI access to deploy `beta testnets`.
|
||||
If you are not a Chia organization member, you can enquire about deploying a `beta testnet` in the public dev keybase channel.
|
||||
If you are not a Chia organization member, you can enquire about deploying a `beta testnet` in the public dev Keybase channel.
|
||||
|
||||
## Submit changes
|
||||
|
||||
To propose changes, please make a pull request to the `main` branch.
|
||||
To propose changes, please make a pull request to the `main` branch. See Branching Strategy above.
|
||||
|
||||
To propose changes, for production releases of chia please make a pull request to the latest release branch.
|
||||
To propose changes for the production releases of Chia, please make a pull request to the latest release branch.
|
||||
|
||||
## Copyright
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Installation
|
||||
|
||||
Install instructions have been moved to the [INSTALL](https://github.com/Chia-Network/chia-blockchain/wiki/INSTALL) section of the repository [Wiki](https://github.com/Chia-Network/chia-blockchain/wiki)
|
||||
Install instructions have been moved to the [INSTALL](https://github.com/Chia-Network/chia-blockchain/wiki/INSTALL) section of the repository [Wiki](https://github.com/Chia-Network/chia-blockchain/wiki).
|
||||
|
||||
After installing, follow the remaining instructions in the
|
||||
[Quick Start Guide](https://github.com/Chia-Network/chia-blockchain/wiki/Quick-Start-Guide)
|
||||
|
12
README.md
12
README.md
@ -1,4 +1,5 @@
|
||||
# chia-blockchain
|
||||
|
||||
![Alt text](https://www.chia.net/img/chia_logo.svg)
|
||||
|
||||
| Current Release/main | Development Branch/dev |
|
||||
@ -7,8 +8,7 @@
|
||||
|
||||
![GitHub contributors](https://img.shields.io/github/contributors/Chia-Network/chia-blockchain?logo=GitHub)
|
||||
|
||||
Chia is a modern cryptocurrency built from scratch, designed to be efficient, decentralized, and secure. Here are some of
|
||||
the features and benefits:
|
||||
Chia is a modern cryptocurrency built from scratch, designed to be efficient, decentralized, and secure. Here are some of the features and benefits:
|
||||
* [Proof of space and time](https://docs.google.com/document/d/1tmRIb7lgi4QfKkNaxuKOBHRmwbVlGL4f7EsBDr_5xZE/edit) based consensus which allows anyone to farm with commodity hardware
|
||||
* Very easy to use full node and farmer GUI and cli (thousands of nodes active on mainnet)
|
||||
* Simplified UTXO based transaction model, with small on chain state
|
||||
@ -16,7 +16,7 @@ the features and benefits:
|
||||
* BLS keys and aggregate signatures (only one signature per block)
|
||||
* [Pooling protocol](https://www.chia.net/2020/11/10/pools-in-chia.html) (in development) that allows farmers to have control of making blocks
|
||||
* Support for light clients with fast, objective syncing
|
||||
* Growing community of farmers and developers around the world
|
||||
* A growing community of farmers and developers around the world
|
||||
|
||||
Please check out the [wiki](https://github.com/Chia-Network/chia-blockchain/wiki)
|
||||
and [FAQ](https://github.com/Chia-Network/chia-blockchain/wiki/FAQ) for
|
||||
@ -32,18 +32,20 @@ on your router or add a NAT (for IPv4 but not IPv6) and firewall rules to allow
|
||||
TCP port 8444 access to your peer.
|
||||
These methods tend to be router make/model specific.
|
||||
|
||||
Most should only install harvesters, farmers, plotter, full nodes, and wallets.
|
||||
Building Timelords and VDFs is for sophisticated users in most environments.
|
||||
Most users should only install harvesters, farmers, plotter, full nodes, and wallets.
|
||||
Building Timelords and VDFs is for sophisticated users, in most environments.
|
||||
Chia Network and additional volunteers are running sufficient Timelords
|
||||
for consensus.
|
||||
|
||||
## Installing
|
||||
|
||||
Install instructions are available in the
|
||||
[INSTALL](https://github.com/Chia-Network/chia-blockchain/wiki/INSTALL)
|
||||
section of the
|
||||
[chia-blockchain repository wiki](https://github.com/Chia-Network/chia-blockchain/wiki).
|
||||
|
||||
## Running
|
||||
|
||||
Once installed, a
|
||||
[Quick Start Guide](https://github.com/Chia-Network/chia-blockchain/wiki/Quick-Start-Guide)
|
||||
is available from the repository
|
||||
|
@ -1,8 +1,8 @@
|
||||
#!/bin/bash
|
||||
pip install setuptools_scm
|
||||
# The environment variable CHIA_INSTALLER_VERSION needs to be defined
|
||||
# The environment variable CHIA_INSTALLER_VERSION needs to be defined.
|
||||
# If the env variable NOTARIZE and the username and password variables are
|
||||
# set, this will attempt to Notarize the signed DMG
|
||||
# set, this will attempt to Notarize the signed DMG.
|
||||
CHIA_INSTALLER_VERSION=$(python installer-version.py)
|
||||
|
||||
if [ ! "$CHIA_INSTALLER_VERSION" ]; then
|
||||
@ -91,17 +91,17 @@ fi
|
||||
|
||||
# Notes on how to manually notarize
|
||||
#
|
||||
# Ask for username and password - password should be an app specific password
|
||||
# Ask for username and password. password should be an app specific password.
|
||||
# Generate app specific password https://support.apple.com/en-us/HT204397
|
||||
# xcrun altool --notarize-app -f Chia-0.1.X.dmg --primary-bundle-id net.chia.blockchain -u username -p password
|
||||
# xcrun altool --notarize-app; -should return REQUEST-ID, use it in next command
|
||||
#
|
||||
# Wait until following command return a success message"
|
||||
# watch -n 20 'xcrun altool --notarization-info {REQUEST-ID} -u username -p password'
|
||||
# It can take a while, run it every few minutes
|
||||
# Wait until following command return a success message".
|
||||
# watch -n 20 'xcrun altool --notarization-info {REQUEST-ID} -u username -p password'.
|
||||
# It can take a while, run it every few minutes.
|
||||
#
|
||||
# Once that is successful, execute the following command"
|
||||
# Once that is successful, execute the following command":
|
||||
# xcrun stapler staple Chia-0.1.X.dmg
|
||||
#
|
||||
# Validate DMG
|
||||
# Validate DMG:
|
||||
# xcrun stapler validate Chia-0.1.X.dmg
|
||||
|
@ -21,7 +21,6 @@ else
|
||||
Write-Output "miniupnpc download successful."
|
||||
}
|
||||
|
||||
|
||||
Write-Output " ---"
|
||||
Write-Output "Create venv - python3.7 or 3.8 is required in PATH"
|
||||
Write-Output " ---"
|
||||
|
@ -1,26 +1,23 @@
|
||||
from setuptools_scm import get_version
|
||||
import sys
|
||||
import os
|
||||
import sys
|
||||
|
||||
from setuptools_scm import get_version
|
||||
|
||||
|
||||
# example: 1.0b5.dev225
|
||||
def main():
|
||||
|
||||
if len(sys.argv) > 1 and "win" in sys.argv[1]: # Special case windows to 0.1.6225
|
||||
windows = True
|
||||
else:
|
||||
windows = False
|
||||
windows = len(sys.argv) > 1 and "win" in sys.argv[1] # Special case windows to 0.1.6225
|
||||
|
||||
scm_full_version = get_version(root="..", relative_to=__file__)
|
||||
# scm_full_version = "1.0.5.dev22"
|
||||
# scm_full_version = "1.0.5.dev22"
|
||||
os.environ["SCM_VERSION"] = scm_full_version
|
||||
|
||||
left_full_version = scm_full_version.split("+")
|
||||
|
||||
version = left_full_version[0].split(".")
|
||||
|
||||
scm_major_version = version[0]
|
||||
scm_minor_version = version[1]
|
||||
if len(version) == 3: # if the length of the version array is more than 2
|
||||
|
||||
if len(version) == 3: # If the length of the version array is more than 2
|
||||
patch_release_number = version[2]
|
||||
smc_patch_version = patch_release_number
|
||||
dev_release_number = ""
|
||||
@ -34,7 +31,7 @@ def main():
|
||||
major_release_number = scm_major_version
|
||||
minor_release_number = scm_minor_version
|
||||
|
||||
# If this is a beta dev release - get which beta it is
|
||||
# If this is a beta dev release, get which beta it is
|
||||
if "0b" in scm_minor_version:
|
||||
orignial_minor_ver_list = scm_minor_version.split("0b")
|
||||
major_release_number = str(1 - int(scm_major_version)) # decrement the major release for beta
|
||||
|
@ -20,12 +20,12 @@ if [ "$(uname)" = "Linux" ]; then
|
||||
sudo apt-get install -y npm nodejs libxss1
|
||||
elif type yum && [ ! -f "/etc/redhat-release" ] && [ ! -f "/etc/centos-release" ] && [ ! -f /etc/rocky-release ]; then
|
||||
# AMZN 2
|
||||
echo "Installing on Amazon Linux 2"
|
||||
echo "Installing on Amazon Linux 2."
|
||||
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
|
||||
sudo yum install -y nodejs
|
||||
elif type yum && [ ! -f /etc/rocky-release ] && [ -f /etc/redhat-release ] || [ -f /etc/centos-release ]; then
|
||||
# CentOS or Redhat
|
||||
echo "Installing on CentOS/Redhat"
|
||||
echo "Installing on CentOS/Redhat."
|
||||
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
|
||||
sudo yum install -y nodejs
|
||||
elif type yum && [ -f /etc/rocky-release ]; then
|
||||
@ -52,7 +52,7 @@ if $UBUNTU; then
|
||||
fi
|
||||
|
||||
if [ "$UBUNTU_PRE_2004" = "True" ]; then
|
||||
echo "Installing on Ubuntu older than 20.04 LTS: Ugrading node.js to stable"
|
||||
echo "Installing on Ubuntu older than 20.04 LTS: Ugrading node.js to stable."
|
||||
UBUNTU_PRE_2004=true # Unfortunately Python returns True when shell expects true
|
||||
sudo npm install -g n
|
||||
sudo n stable
|
||||
@ -60,12 +60,12 @@ if [ "$UBUNTU_PRE_2004" = "True" ]; then
|
||||
fi
|
||||
|
||||
if [ "$UBUNTU" = "true" ] && [ "$UBUNTU_PRE_2004" = "False" ]; then
|
||||
echo "Installing on Ubuntu 20.04 LTS or newer: Using installed node.js version"
|
||||
echo "Installing on Ubuntu 20.04 LTS or newer: Using installed node.js version."
|
||||
fi
|
||||
|
||||
# We will set up node.js on GitHub Actions and Azure Pipelines directly
|
||||
# for Mac and Windows so skip unless completing a source/developer install
|
||||
# Ubuntu special cases above
|
||||
# For Mac and Windows, we will set up node.js on GitHub Actions and Azure
|
||||
# Pipelines directly, so skip unless you are completing a source/developer install.
|
||||
# Ubuntu special cases above.
|
||||
if [ ! "$CI" ]; then
|
||||
echo "Running git submodule update --init --recursive."
|
||||
echo ""
|
||||
@ -89,10 +89,10 @@ if [ ! "$CI" ]; then
|
||||
npm audit fix || true
|
||||
npm run build
|
||||
else
|
||||
echo "Skipping node.js in install.sh on MacOS ci"
|
||||
echo "Skipping node.js in install.sh on MacOS ci."
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Chia blockchain install-gui.sh complete."
|
||||
echo "Chia blockchain install-gui.sh completed."
|
||||
echo ""
|
||||
echo "Type 'cd chia-blockchain-gui' and then 'npm run electron &' to start the GUI"
|
||||
echo "Type 'cd chia-blockchain-gui' and then 'npm run electron &' to start the GUI."
|
||||
|
@ -6,7 +6,7 @@ if [ -z "$VIRTUAL_ENV" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Timelord requires CMake 3.14+ to compile vdf_client"
|
||||
echo "Timelord requires CMake 3.14+ to compile vdf_client."
|
||||
|
||||
PYTHON_VERSION=$(python -c 'import sys; print(f"python{sys.version_info.major}.{sys.version_info.minor}")')
|
||||
echo "Python version: $PYTHON_VERSION"
|
||||
@ -18,7 +18,7 @@ CHIAVDF_VERSION=$(python -c 'from setup import dependencies; t = [_ for _ in dep
|
||||
ubuntu_cmake_install() {
|
||||
UBUNTU_PRE_2004=$(python -c 'import subprocess; process = subprocess.run(["lsb_release", "-rs"], stdout=subprocess.PIPE); print(float(process.stdout) < float(20.04))')
|
||||
if [ "$UBUNTU_PRE_2004" = "True" ]; then
|
||||
echo "Ubuntu version is pre 20.04LTS - installing CMake with snap"
|
||||
echo "Ubuntu version is pre 20.04LTS - installing CMake with snap."
|
||||
sudo apt-get install snap -y
|
||||
sudo apt-get remove --purge cmake -y
|
||||
hash -r
|
||||
@ -36,19 +36,19 @@ symlink_vdf_bench() {
|
||||
elif [ ! -e venv/lib/"$1"/site-packages/vdf_bench ]; then
|
||||
echo "ERROR: Could not find venv/lib/$1/site-packages/vdf_bench"
|
||||
else
|
||||
echo "./vdf_bench link exists"
|
||||
echo "./vdf_bench link exists."
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$(uname)" = "Linux" ] && type apt-get; then
|
||||
UBUNTU_DEBIAN=true
|
||||
echo "Found Ubuntu/Debian"
|
||||
echo "Found Ubuntu/Debian."
|
||||
elif [ "$(uname)" = "Linux" ] && type dnf || yum; then
|
||||
RHEL_BASED=true
|
||||
echo "Found RedHat"
|
||||
echo "Found RedHat."
|
||||
elif [ "$(uname)" = "Darwin" ]; then
|
||||
MACOS=true
|
||||
echo "Found MacOS"
|
||||
echo "Found MacOS."
|
||||
fi
|
||||
|
||||
if [ -e "$THE_PATH" ]; then
|
||||
@ -74,21 +74,21 @@ else
|
||||
venv/bin/python -m pip install --force --no-binary chiavdf "$CHIAVDF_VERSION"
|
||||
symlink_vdf_bench "$PYTHON_VERSION"
|
||||
elif [ -e venv/bin/python ] && test $MACOS && [ "$(brew info boost | grep -c 'Not installed')" -eq 1 ]; then
|
||||
echo "Installing chiavdf requirement boost for MacOS"
|
||||
echo "Installing chiavdf requirement boost for MacOS."
|
||||
brew install boost
|
||||
echo "installing chiavdf from source"
|
||||
echo "Installing chiavdf from source."
|
||||
# User needs to provide required packages
|
||||
echo venv/bin/python -m pip install --force --no-binary chiavdf "$CHIAVDF_VERSION"
|
||||
venv/bin/python -m pip install --force --no-binary chiavdf "$CHIAVDF_VERSION"
|
||||
symlink_vdf_bench "$PYTHON_VERSION"
|
||||
elif [ -e venv/bin/python ]; then
|
||||
echo "installing chiavdf from source"
|
||||
echo "Installing chiavdf from source."
|
||||
# User needs to provide required packages
|
||||
echo venv/bin/python -m pip install --force --no-binary chiavdf "$CHIAVDF_VERSION"
|
||||
venv/bin/python -m pip install --force --no-binary chiavdf "$CHIAVDF_VERSION"
|
||||
symlink_vdf_bench "$PYTHON_VERSION"
|
||||
else
|
||||
echo "no venv created yet, please run install.sh"
|
||||
echo "No venv created yet, please run install.sh."
|
||||
fi
|
||||
fi
|
||||
echo "To estimate a timelord on this CPU try './vdf_bench square_asm 400000' for an ips estimate"
|
||||
echo "To estimate a timelord on this CPU try './vdf_bench square_asm 400000' for an ips estimate."
|
||||
|
31
install.sh
31
install.sh
@ -12,13 +12,13 @@ fi
|
||||
if [ "$(uname -m)" = "armv7l" ]; then
|
||||
echo ""
|
||||
echo "WARNING:"
|
||||
echo "Chia Blockchain requires a 64 bit OS and this is 32 bit armv7l"
|
||||
echo "For more information:"
|
||||
echo "The Chia Blockchain requires a 64 bit OS and this is 32 bit armv7l"
|
||||
echo "For more information, see"
|
||||
echo "https://github.com/Chia-Network/chia-blockchain/wiki/Raspberry-Pi"
|
||||
echo "Exiting."
|
||||
exit 1
|
||||
fi
|
||||
# get submodules
|
||||
# Get submodules
|
||||
git submodule update --init mozilla-ca
|
||||
|
||||
UBUNTU_PRE_2004=false
|
||||
@ -36,28 +36,28 @@ if [ "$(uname)" = "Linux" ]; then
|
||||
#LINUX=1
|
||||
if [ "$UBUNTU" = "true" ] && [ "$UBUNTU_PRE_2004" = "1" ]; then
|
||||
# Debian/Ubuntu
|
||||
echo "Installing on Ubuntu/Debian pre 20.04 LTS"
|
||||
echo "Installing on Ubuntu/Debian pre 20.04 LTS."
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3.7-venv python3.7-distutils
|
||||
elif [ "$UBUNTU" = "true" ] && [ "$UBUNTU_PRE_2004" = "0" ] && [ "$UBUNTU_2100" = "0" ]; then
|
||||
echo "Installing on Ubuntu/Debian 20.04 LTS"
|
||||
echo "Installing on Ubuntu/Debian 20.04 LTS."
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3.8-venv python3-distutils
|
||||
elif [ "$UBUNTU" = "true" ] && [ "$UBUNTU_2100" = "1" ]; then
|
||||
echo "Installing on Ubuntu/Debian 21.04 or newer"
|
||||
echo "Installing on Ubuntu/Debian 21.04 or newer."
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3.9-venv python3-distutils
|
||||
elif type pacman && [ -f "/etc/arch-release" ]; then
|
||||
# Arch Linux
|
||||
echo "Installing on Arch Linux"
|
||||
echo "Installing on Arch Linux."
|
||||
sudo pacman -S --needed python git
|
||||
elif type yum && [ ! -f "/etc/redhat-release" ] && [ ! -f "/etc/centos-release" ] && [ ! -f "/etc/fedora-release" ]; then
|
||||
# AMZN 2
|
||||
echo "Installing on Amazon Linux 2"
|
||||
echo "Installing on Amazon Linux 2."
|
||||
sudo yum install -y python3 git
|
||||
elif type yum && [ -f "/etc/redhat-release" ] || [ -f "/etc/centos-release" ] || [ -f "/etc/fedora-release" ]; then
|
||||
# CentOS or Redhat or Fedora
|
||||
echo "Installing on CentOS/Redhat/Fedora"
|
||||
echo "Installing on CentOS/Redhat/Fedora."
|
||||
fi
|
||||
elif [ "$(uname)" = "Darwin" ] && ! type brew >/dev/null 2>&1; then
|
||||
echo "Installation currently requires brew on MacOS - https://brew.sh/"
|
||||
@ -87,8 +87,9 @@ if [ x"$INSTALL_PYTHON_VERSION" = x ]; then
|
||||
INSTALL_PYTHON_VERSION=$(find_python)
|
||||
fi
|
||||
|
||||
# this fancy syntax sets INSTALL_PYTHON_PATH to "python3.7" unless INSTALL_PYTHON_VERSION is defined
|
||||
# if INSTALL_PYTHON_VERSION=3.8, then INSTALL_PYTHON_PATH becomes python3.8
|
||||
# This fancy syntax sets INSTALL_PYTHON_PATH to "python3.7", unless
|
||||
# INSTALL_PYTHON_VERSION is defined.
|
||||
# If INSTALL_PYTHON_VERSION equals 3.8, then INSTALL_PYTHON_PATH becomes python3.8
|
||||
|
||||
INSTALL_PYTHON_PATH=python${INSTALL_PYTHON_VERSION:-3.7}
|
||||
|
||||
@ -110,12 +111,12 @@ python -m pip install -e . --extra-index-url https://pypi.chia.net/simple/
|
||||
|
||||
echo ""
|
||||
echo "Chia blockchain install.sh complete."
|
||||
echo "For assistance join us on Keybase in the #testnet chat channel"
|
||||
echo "For assistance join us on Keybase in the #testnet chat channel:"
|
||||
echo "https://keybase.io/team/chia_network.public"
|
||||
echo ""
|
||||
echo "Try the Quick Start Guide to running chia-blockchain"
|
||||
echo "Try the Quick Start Guide to running chia-blockchain:"
|
||||
echo "https://github.com/Chia-Network/chia-blockchain/wiki/Quick-Start-Guide"
|
||||
echo ""
|
||||
echo "To install the GUI type 'sh install-gui.sh' after '. ./activate'"
|
||||
echo "To install the GUI type 'sh install-gui.sh' after '. ./activate'."
|
||||
echo ""
|
||||
echo "Type '. ./activate' and then 'chia init' to begin"
|
||||
echo "Type '. ./activate' and then 'chia init' to begin."
|
||||
|
1
setup.py
1
setup.py
@ -28,6 +28,7 @@ dependencies = [
|
||||
upnp_dependencies = [
|
||||
"miniupnpc==2.1", # Allows users to open ports on their router
|
||||
]
|
||||
|
||||
dev_dependencies = [
|
||||
"pytest",
|
||||
"pytest-asyncio",
|
||||
|
@ -1,23 +1,21 @@
|
||||
|
||||
# Test CI Job generation
|
||||
|
||||
The CI jobs for these tests are managed by `build-workflows.py`
|
||||
The CI jobs for these tests are managed by `build-workflows.py`.
|
||||
|
||||
If you add a test file, or move one to another directory, please run `build-workflows.py`.
|
||||
Tests are recognized by the file glob `test_*.py`.
|
||||
Changing the contents of a file does not require running `build-workflows.py`
|
||||
Changing the contents of a file does not require running `build-workflows.py`.
|
||||
|
||||
We currently use github actions. Default runners have two vcpus.
|
||||
The workflows are located in [../.github/workflows/](https://github.com/Chia-Network/chia-blockchain/tree/main/.github/workflows)
|
||||
The workflows are located in [../.github/workflows/](https://github.com/Chia-Network/chia-blockchain/tree/main/.github/workflows).
|
||||
|
||||
The inputs to `build-workflows.py` are the templates in `runner-templates`, the file `testconfig.py` in this directory,
|
||||
and the optional `config.py` files in some test subdirectories.
|
||||
The inputs to `build-workflows.py` are the templates in `runner-templates`, the file `testconfig.py` in this directory, and the optional `config.py` files in some test subdirectories.
|
||||
Files in the template directory ending in `include.yml` are included in jobs based on the per-directory settings.
|
||||
|
||||
The generated workflows are output to ../.github/workflows/
|
||||
The generated workflows are output to `../.github/workflows/`.
|
||||
|
||||
Each subdirectory below the directories `root_test_dirs` in `testconfig.py` becomes a job in the github workflow matrix.
|
||||
If your jobs run too long, simply move some tests into new subdirectories, and run `build-workflows.py`.
|
||||
If your jobs run too long, simply move some tests into new subdirectories and run `build-workflows.py`.
|
||||
A workflow built from a parent directory does not include the tests in its subdirectories.
|
||||
The subdirectory jobs do not include the tests from their parents.
|
||||
|
||||
@ -41,7 +39,7 @@ job_timeout = 30
|
||||
|
||||
### Parallel test execution
|
||||
|
||||
If you are certain that all the tests in a directory can run in parallel, set `parallel = True` in config.py in that directory.
|
||||
If you are certain that all the tests in a directory can run in parallel, set `parallel = True` in `config.py` inside that directory.
|
||||
|
||||
### Optional job stages
|
||||
|
||||
@ -52,4 +50,4 @@ Set `install_timelord` to `False` to omit the step of installing a Time Lord for
|
||||
### Job Timeout
|
||||
|
||||
Set `job_timeout` to the number of minutes you want the CI system to wait before it kills your job.
|
||||
Add two or three minutes to allow for job setup.
|
||||
Add two or three minutes to allow for job setup.
|
||||
|
@ -37,17 +37,17 @@ def read_file(filename):
|
||||
return None
|
||||
|
||||
|
||||
# input file
|
||||
# Input file
|
||||
def workflow_yaml_template_text(os):
|
||||
return Path(f"runner-templates/build-test-{os}").read_text()
|
||||
|
||||
|
||||
# output files
|
||||
# Output files
|
||||
def workflow_yaml_file(dir, os, test_name):
|
||||
return Path(dir / f"build-test-{os}-{test_name}.yml")
|
||||
|
||||
|
||||
# Function from test dir to test name
|
||||
# String function from test dir to test name
|
||||
def test_name(dir):
|
||||
return str(dir).replace("/", "-")
|
||||
|
||||
@ -77,7 +77,7 @@ default_replacements = {
|
||||
# -----
|
||||
|
||||
|
||||
# replace with update_config
|
||||
# Replace with update_config
|
||||
def generate_replacements(defaults, conf, dir, test_files):
|
||||
assert len(test_files) > 0
|
||||
replacements = dict(defaults)
|
||||
@ -102,7 +102,7 @@ def generate_replacements(defaults, conf, dir, test_files):
|
||||
return replacements
|
||||
|
||||
|
||||
# overwrite with directory specific values
|
||||
# Overwrite with directory specific values
|
||||
def update_config(parent, child):
|
||||
if child is None:
|
||||
return parent
|
||||
|
@ -1,5 +1,6 @@
|
||||
import asyncio
|
||||
import signal
|
||||
|
||||
from secrets import token_bytes
|
||||
from typing import Dict, List, Optional
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Github actions template config
|
||||
# Github actions template config.
|
||||
oses = ["ubuntu", "macos"]
|
||||
root_test_dirs = ["blockchain", "clvm", "core", "generator", "simulation", "wallet"]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user