aa770ba5af [LABS-361] MIPS Python Drivers (#18686)
* Initial draft of custody architecture

* Rename CustodyType -> Puzzle

* Rename UnknownCustody -> UnknownPuzzle

* Rename CustodyHint -> PuzzleHint

* Rename CustodyWithRestrictions -> PuzzleWithRestrictions

* Reorganize for clarity

* Add support for identifying and filling in unknown puzzles

* rename custody -> puzzle

* MofN puzzles

* Restriction layer

* Fix PlaceholderPuzzle with MofN restriction

* Add indexing

* Elaborate on potential optimizations

* Light comment improvements

* Add spec namespace

* 3.10 compatibility I think?

* pylint I hate you

* pylint I really hate you

* Add an optimized puzzle for 1ofN

* Coverage ignores

* Add optimization for NofN

* Add support for `PuzzleWithRestrictions` with no MofN

* comments

* Fix members with restrictions inside of MofNs

* pylint

* Rework restrictions

* Use feeder pattern for MofNs as well

* f you pylint

* initial commit

* start work on tests

* fix all but signature in test

* fix test

* black, isort, flake8

* migrate changes to new files / folders

* mypy fixes

* remove unused imports

* add bls_member to deployed_puzzle_hashes

* no memo for BLS Member

* change comments on BLSMember

* chialispp bls_member

* update test comment

* black again

* pylint disable

* add a more minimal test for blsmember

* fix quex comments

* flake8

* Add basic framework for delegated puzzle validators

* code coverage for memo()

* don't reuse variable of different type

* coverage

* pre-commit

* pre-commit

* Fix spend sim import

* Add passkey member puzzle

* Dedup a bit

* Add `Timelock` restriction

* Rename variable

* Add coin announcement restriction

* initial commit

* Add comments per @matt-o-how

* typo

* correct formatting for using secp_verify

* secp256r1 fix

* pretty print lisp

* add to deployed puzzle hashes

* ruff formatted

* Add a restriction to mimic existing vault recovery

* Add a helper method

* initial commit

* fix test

* fix_test_2

* ruff format

* add secp256k1_member to deployed puzzle hashes

* pretty print lisp

* ruff check fix.

* curve_order fix

* ruff format

* Add memo-ization to the restriction

* add assertion for secpr1_member memo in test_secp256r1_member

* add assertion for secpk1_member memo in test_secp256k1_member

* add secpmember solve method

* - specify type for secp_sk in member puzzles

* add SECPK1 and SECPR1 "puzzle assert" members with corresponding tests

* Fix bug and add test coverage to dpuz wrapper enforcement puzzle

* Fix bug and add test coverage to timelock puzzle

* pre-commit

* initial commit

* Add dataclass for SingletonMember in member_puzzles.py

* fix message coin_ids

* rename eve to launcher

* add minimal message condition test

* change message mode to 3F

* use correct message format

* fix test

* cleanup

* fix formatting in singleton_member.clsp

* Add files for test chialisp

* Add a wrapper that forces a message condition with a coin ID commitment

* Add a version of a passkey puzzle that only asserts puzzle hash

* add comments, remove unused code, add customisable singleton info

* initial commit

* fix typo and pprint chialisp

* chialisp pretty print

* Add comment about message

* add bls_with_taproot puzzle and member class

* mypy fixes

* more mypy fixes

* remove breakpoint

* correct name in deployed_puzzle_hashes

* remove mod from name

* only allowed delegated_puzzle as taproot_path

* add test that checks bad taproot is blocked

* ruff fix

* make BLSWithTaproot Member flexible

* address nitpicks

* mypy fixes

* Remove member and restriction implementations

* Import from chia_puzzles_py (and fix tests)

* Remove executable bibt?

* Re-add some of the member and restrictions

* Some kw_only

* More kw_only

* Reviews by @matt-o-how and cursor

* Comments by cursor

* Remove `Force1of2WithRestrictedVariable`

* Bring in some downstream stuff

* Make a heightlock instead of timelock restriction

* comments by cursor

* Test coverage

* Better condition_codes.clib-ing

* comments by @matt-o-how

---------

Co-authored-by: Matthew Howard <m.o.howard97@gmail.com>
Co-authored-by: matt-o-how <48453825+matt-o-how@users.noreply.github.com>
2026-02-11 10:29:11 -08:00
2024-03-13 13:41:04 -07:00
2024-07-16 11:04:07 -07:00
2024-11-04 15:22:52 -07:00
2025-11-11 14:06:45 -07:00
2025-10-23 15:41:26 -05:00
2026-01-06 09:51:23 -06:00
2026-01-27 13:33:30 -08:00
2025-11-12 09:06:12 -07:00

chia-blockchain

Chia Network logo

Releases Repo Stats Socials
Latest Release
Latest RC
Latest Beta
Coverage
Downloads
Commits
Contributors
Discord
YouTube
Reddit
Twitter

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)
  • Chia seeder, which maintains a list of reliable nodes within the Chia network via a built-in DNS server.
  • 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 Chia website, the Intro to Chia, and FAQ for information on this project.

Python 3.10+ is required. Make sure your default python version is >=3.10 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. Setting up a seeder is best left to more advanced users. 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 Installation Details section of the Chia Docs.

Running

Once installed, an Intro to Chia guide is available in the Chia Docs.

S
Description
Chia blockchain python implementation (full node, farmer, harvester, timelord, and wallet)
Readme Apache-2.0
362 MiB
Languages
Python 99.4%
Shell 0.4%
PowerShell 0.2%