Chia blockchain python implementation (full node, farmer, harvester, timelord, and wallet)
Go to file
Mariano Sorgente 8a028c3594
Ms.mempool locking (#9050)
* Prority locking to consensus

* Remove pstats

* Linting

* Do some stuff outside of lock

* Fix startup

* Add log timings

* Try some different locking

* Add limit

* catch excp

* CLVM inside lock

* Try using a semaphore instead

* use events for lock queue

* test

* Add logging for message types

* type

* remove seed

* check new peak waiters

* correct FullNodeAPI self.full_node.new_peak._waiters typo

* correct logging string typos

* only warn about new_peak Waiters if there is at least 1

* remove no-longer-accepted parameter to FullNode.peak_post_processing()

* only warn about respond_transaction Waiters if there is at least 1

* lint

* Change some constants

* Small fix and logging changes

* Put message types outside

* Change some log levels so we can test with info

* More logging

* Increase rate limits but decrease paralelism

* tweaks

* Log dropped tx

* Fix pool rpc test

* Test fixes

* Mempool optimization

* Remove from seen if fails

* Increase queue sizes

* Message types info

* More test and logging

* Small changes to networking just in case

* Decrease logging

* Decrease logging even further

* Decrease logging even further even further

* Decrease logging 3

* Transaction queue

* Don't cancel tasks or close connection

* Cancel tasks on disconnect (for shutdown purposed)

* Fix typo

* Catch cancelled

* Do multiple at a time

* More accurate farmer response time

* More efficiently create tasks

* Increase queue size and priority by fee

* Revert priority

* Don't re-request too many times for dropped TX

* Handle cancelled error so we don't go into a bad state

* Catch cancelled in syncing tasks

* Reduce new_peak_sem to improve performance

* Less bytes conversion

* Missing file, and 2 workers for CLVM

* Validate BLS in a new thread

* tests

* Change semaphore constants

* correct a cancellation triggered exception and assertion

* Fix send_transaction, dont use BaseException, fix tests

* Fix more tests

* only log transaction handler cancellation in debug

* typing in log

* move unfinished validation to diff proc

* it is asyncio.CancelledError

* Add a test for bad signature

* Fix more tests, reduce logging, lint

* One more lint

* blockchain tests, pass bytes directly, single call

* Try to fix rl_wallet failures

* Fix mempool test

* catch everything

* Don't test RL wallet

* Fix more tests and return error code

* Improve error handling in multiprocess

* Add pre-validation time

* Add pre-validation time in logs, and revert pytest.ini changes

* Add log correctly

* Ms.bls cache experiment (#9115)

* Logging for cache

* Less logging

* Return to original plan

* Clean up

* Remove coment

* Remove log

* formalize LockQueue shutdown

* Comments

* Fix blockchain test

* Improve cache

* Remove logs

* Fix sign_coin_spends

* Fix pool wallet

Co-authored-by: Kyle Altendorf <sda@fstab.net>
Co-authored-by: Yostra <straya@chia.net>
2021-11-04 09:29:05 -07:00
.github Add plotters. (#8497) 2021-10-28 15:37:46 -07:00
benchmarks Coin store updates (#8818) 2021-10-18 09:33:20 -07:00
build_scripts Add plotters. (#8497) 2021-10-28 15:37:46 -07:00
chia Ms.mempool locking (#9050) 2021-11-04 09:29:05 -07:00
chia-blockchain-gui@1863a31603 updated gui to 1863a31603db272746af4db2b4003280c51d302b 2021-10-28 15:42:25 -07:00
mozilla-ca@b1b808ab93 Update mozilla-ca (#7457) 2021-07-13 11:05:45 -07:00
tests Ms.mempool locking (#9050) 2021-11-04 09:29:05 -07:00
.flake8 Isort take 3 (#1213) 2021-03-09 18:27:27 -08:00
.gitignore Merge DID into main (#1720) 2021-04-06 19:31:44 -07:00
.gitmodules Pools mainnet (#7047) 2021-06-29 14:21:25 -07:00
.isort.cfg Isort take 3 (#1213) 2021-03-09 18:27:27 -08:00
.pre-commit-config.yaml pre-commit: Update some hooks (#8309) 2021-09-07 18:18:43 -07:00
azure-pipelines.yml Add plotters. (#8497) 2021-10-28 15:37:46 -07:00
BUILD_TIMELORD.md update permissions (#6061) 2021-05-26 11:33:26 -07:00
CHANGELOG.md unreleased 2021-10-27 16:41:02 -07:00
CODE_OF_CONDUCT.md Bram's edit to code_of_conduct and start new dev branch 2020-09-15 12:26:16 -07:00
CONTRIBUTING.md pre-commit: Add initial config and run it for all files (#7053) 2021-08-02 10:48:22 -07:00
Install-gui.ps1 Restore original CWD in Install-gui.ps1 (#8912) 2021-10-29 10:45:13 -07:00
install-gui.sh install-gui: Drop trailing whitespaces (#8723) 2021-10-05 09:47:57 -07:00
install-timelord.sh Improve style consistency in root directory docs files (#4493) 2021-05-12 13:12:30 -07:00
INSTALL.md Improve style consistency in root directory docs files (#4493) 2021-05-12 13:12:30 -07:00
Install.ps1 Avoid activating venv in Install.ps1 (#8927) 2021-10-29 10:44:46 -07:00
install.sh Update channel to direct users to in install.sh (#8517) 2021-09-17 13:59:09 -07:00
installhelper.py only use the last line of chia version output in installhelper.py (#8239) 2021-08-27 10:42:07 -07:00
LICENSE Copyright 2021 Chia Network in LICENSE (#3153) 2021-04-29 21:44:40 -07:00
mypy.ini Ms.fixtest (#432) 2020-10-01 11:07:12 -07:00
pyproject.toml Plotting needs Mo memory (#620) 2021-01-12 17:02:22 -05:00
README.md [DOCS] Updated main readme to point to pooling guide (#7280) 2021-07-12 19:42:14 -07:00
run-py-tests.sh Mypy issues on python 3.9.7 (#8554) 2021-09-22 10:44:03 -07:00
setup.py switch to forked dnspython v2.2.0 (#9107) 2021-11-03 16:45:16 -07:00

chia-blockchain

Alt text

Current Release/main Development Branch/dev
Ubuntu Core Tests MacOS Core Tests Windows Installer on Windows 10 and Python 3.7 Ubuntu Core Tests MacOS Core Tests Windows Installer on Windows 10 and Python 3.7

GitHub contributors

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 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
  • Lisp-style Turing-complete functional programming language for money related use cases
  • BLS keys and aggregate signatures (only one signature per block)
  • Pooling protocol that allows farmers to have control of making blocks
  • Support for light clients with fast, objective syncing
  • A growing community of farmers and developers around the world

Please check out the wiki and FAQ for information on this project.

Python 3.7+ is required. Make sure your default python version is >=3.7 by typing python3.

If you are behind a NAT, it can be difficult for peers outside your subnet to reach you when they start up. You can enable UPnP 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 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 section of the chia-blockchain repository wiki.

Running

Once installed, a Quick Start Guide is available from the repository wiki.