Skip to content

Commit

Permalink
Add support for Envelope Expansions and related features:
Browse files Browse the repository at this point in the history
- Write support for Arbitrary Protocol Inscriptions #1
- Content Compression #2
- Inscription Metadata (JSON) #6
- Non-tracked / Non-transferable Inscriptions #8
- Off-chain Content (BitTorrent) #9
- Optional Title, Subtitle, Description, License, and Comment Fields
  • Loading branch information
tyjvazum committed May 13, 2023
1 parent e3a51f3 commit f476da4
Show file tree
Hide file tree
Showing 22 changed files with 4,649 additions and 80 deletions.
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
Arb Changelog
=========

[0.2.0](https://github.com/tyjvazum/arb/releases/tag/v0.2.0) - 2023-05-13
---------------------------------------------------------------------

### Added
- Add support for Envelope Expansions
- Add write support for Arbitrary Protocol Inscriptions https://github.com/tyjvazum/arb/issues/1
- Add support for Content Compression https://github.com/tyjvazum/arb/issues/2
- Add support for Inscription Metadata (JSON) https://github.com/tyjvazum/arb/issues/6
- Add support for Non-tracked / Non-transferable Inscriptions https://github.com/tyjvazum/arb/issues/8
- Add support for Off-chain Content (BitTorrent) https://github.com/tyjvazum/arb/issues/9
- Add support for Optional Title, Subtitle, Description, License, and Comment Fields

[0.1.0](https://github.com/tyjvazum/arb/releases/tag/v0.1.0) - 2023-04-05
---------------------------------------------------------------------

Expand Down
10 changes: 8 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "arb"
description = "◉ Arbitrary Protocols on top of Bitcoin (Bitcoin NFTs/Ordinals & Bitcoin Identities/Usernames)"
version = "0.1.0"
version = "0.2.0"
license = "GPL-3.0-only"
edition = "2021"
autotests = false
Expand All @@ -22,8 +22,9 @@ bech32 = "0.9.1"
bip39 = "1.0.1"
bitcoin = { version = "0.29.1", features = ["rand"] }
boilerplate = { version = "0.2.3", features = ["axum"] }
brotli = "3.3.4"
chrono = "0.4.19"
clap = { version = "3.1.0", features = ["derive"] }
clap = { version = "3.2.25", features = ["derive"] }
ctrlc = "3.2.1"
derive_more = "0.99.17"
dirs = "4.0.0"
Expand All @@ -33,7 +34,9 @@ hex = "0.4.3"
html-escaper = "0.2.0"
http = "0.2.6"
hyper = { version = "0.14.24", features = ["http1", "client"] }
include_dir = "0.7.3"
indicatif = "0.17.1"
lava_torrent = { version = "0.8.1" }
lazy_static = "1.4.0"
log = "0.4.14"
mime = "0.3.16"
Expand All @@ -56,9 +59,12 @@ tokio = { version = "1.17.0", features = ["rt-multi-thread"] }
tokio-stream = "0.1.9"
tokio-util = {version = "0.7.3", features = ["compat"] }
tower-http = { version = "0.3.3", features = ["compression-br", "compression-gzip", "cors", "set-header"] }
urlencoding = "2.1.2"
version-compare = "0.1.1"

[dev-dependencies]
executable-path = "1.0.0"
include_dir = "0.7.3"
pretty_assertions = "1.2.1"
reqwest = { version = "0.11.10", features = ["blocking"] }
test-bitcoincore-rpc = { path = "test-bitcoincore-rpc" }
Expand Down
41 changes: 24 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,24 @@ Features
------

- [ ] Arbitrary Protocols https://github.com/tyjvazum/arb/issues/1
- [ ] Read Arbitrary Protocol Inscriptions
- [x] Write Arbitrary Protocol Inscriptions

- [ ] Content Compression https://github.com/tyjvazum/arb/issues/2
- [x] Content Compression https://github.com/tyjvazum/arb/issues/2

- [ ] Data Deduplication https://github.com/tyjvazum/arb/issues/3

- [ ] Hash-addressed Content https://github.com/tyjvazum/arb/issues/4

- [ ] Inscription Constraints https://github.com/tyjvazum/arb/issues/5

- [ ] Inscription Metadata (JSON) https://github.com/tyjvazum/arb/issues/6
- [x] Inscription Metadata (JSON) https://github.com/tyjvazum/arb/issues/6

- [ ] Multipart Inscriptions https://github.com/tyjvazum/arb/issues/7

- [ ] Non-tracked / Non-transferable Inscriptions https://github.com/tyjvazum/arb/issues/8
- [x] Non-tracked / Non-transferable Inscriptions https://github.com/tyjvazum/arb/issues/8

- [ ] Off-chain Content (BitTorrent) https://github.com/tyjvazum/arb/issues/9
- [x] Off-chain Content (BitTorrent) https://github.com/tyjvazum/arb/issues/9

Default Protocols
------
Expand All @@ -42,14 +44,14 @@ Default Protocols
- [ ] 🪪 `bid`: Bitcoin Identifiers/Usernames, enabling unique, human-meaningful
name registration natively on Bitcoin.

- [ ]`bnw`: Bitcoin NFT Walls, enabling a `bid` to showcase a curated
collection of NFTs that it owns.

- [ ] 💎 `ord`: Bitcoin NFTs/Ordinals, enabling NFTs natively on Bitcoin by imbuing
satoshis with numismatic value, allowing them to be collected and traded as
curios.

- [ ]`wal`: Bitcoin NFT Walls, enabling a `bid` to showcase a curated
collection of NFTs that it owns.

- [ ]`arb` supports arbitrary protocols on top of Bitcoin using inscriptions, so
- [x]`arb` supports arbitrary protocols on top of Bitcoin using inscriptions, so
additional protocols can be defined using a JSON specification file, which are
loaded to run the arbitrary protocol.

Expand All @@ -76,15 +78,7 @@ loaded to run the arbitrary protocol.
well-known location on the domain prior to the end of the sunrise period,
which would be some specified block height.

`ord` Protocol
------

- Version 0 (ordv0): As defined in https://github.com/casey/ord.

- Version 1 (ordv1): Extended with new features, implemented through a backward-compatible,
soft-fork mechanism termed Envelope Expansion.

`wal` Protocol
`bnw` Protocol
------

- Is associated with a specific `bid` Identifier/Username.
Expand All @@ -94,6 +88,19 @@ loaded to run the arbitrary protocol.

- Has a text description that can be whatever the owner chooses.

`ord` Protocol
------

- Version 0 (ordv0): As defined in https://github.com/casey/ord.

- Version 1 (ordv1): Extended with new features, implemented through a backward-compatible,
soft-fork mechanism termed Envelope Expansion.
- Content Compression
- Inscription Metadata (JSON)
- Off-chain Content (BitTorrent)
- Optional Title, Subtitle, Description, License, and Comment Fields
- Upgradable Version Mechanism

Wallet
------

Expand Down
1 change: 1 addition & 0 deletions clippy.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
enum-variant-size-threshold = 400
11 changes: 11 additions & 0 deletions protocols/ord-v1.0.0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"protocol": "ord",
"version": "1.0.0",
"tracking": true,
"title": null,
"subtitle": null,
"description": "",
"license": null,
"comment": "",
"software": ""
}
5 changes: 5 additions & 0 deletions protocols/pub-v1.0.0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"protocol": "pub",
"version": "1.0.0",
"tracking": false
}
Loading

0 comments on commit f476da4

Please sign in to comment.