confium 0.7.0-aarch64-linux → 0.7.1-aarch64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -0
- data/Cargo.lock +7 -6
- data/README.adoc +1 -1
- data/lib/confium/transparency/ots.rb +42 -39
- data/lib/confium/transparency.rb +5 -5
- data/lib/confium/version.rb +1 -1
- data/lib/confium_native/3.1/confium_native.so +0 -0
- data/lib/confium_native/3.2/confium_native.so +0 -0
- data/lib/confium_native/3.3/confium_native.so +0 -0
- data/lib/confium_native/3.4/confium_native.so +0 -0
- data/lib/confium_native/4.0/confium_native.so +0 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7cab2b2ace3e324582536762cd815c779eb2e2d4beb2aa8b9d14a96b217e6df6
|
|
4
|
+
data.tar.gz: de2dfb7bf71bfe5b54744f3e14a0ffaa12d63f5a32c6baa39ff3de1fce9c801c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 252ee6c69983a91d316b3d45c7a8f5cb3632494b6962bcce98202378c1860f168ae09f66fa6d36d1c516f6c683a21ea919d44422a7261df04a6478b198f065d2
|
|
7
|
+
data.tar.gz: ff7af357dc2d7f35f568ebd42fd0dca670312ef68953bf91f4c74108e9c6f7336ccf91a9dc9c802e4cb7f18208569ea6b9cffde9866a448ee8ecff2c1d153d62
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.7.1] — UNRELEASED (code on main; release on the owner's tag)
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- `Confium::Transparency::OTS` is now the real OpenTimestamps
|
|
8
|
+
wire-protocol binding (confium-transparency 0.9): `OTS::Client#stamp`
|
|
9
|
+
POSTs the 32-byte digest to the calendar pool and returns a `Proof`
|
|
10
|
+
carrying the parsed partial proof; `#upgrade` polls for a confirmed
|
|
11
|
+
one; `Proof#verify` replays the op tree and classifies attestations
|
|
12
|
+
(pending URIs, Bitcoin/Litecoin heights, `anchored`). Module-level
|
|
13
|
+
`OTS.stamp`/`verify`/`upgrade` over the default calendar pool.
|
|
14
|
+
Network failures raise (`IOError`/`ParseError`) — the stub-era
|
|
15
|
+
silent nil is gone.
|
|
16
|
+
- The calendar round trip releases the GVL (direct
|
|
17
|
+
`rb_thread_call_without_gvl` trampoline — magnus 0.8 does not wrap
|
|
18
|
+
it), so a slow calendar never freezes the VM.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- The workspace's OTS file magic was missing its final two salt bytes
|
|
23
|
+
(29 vs 31; shifted every parse offset for real .ots files) — caught
|
|
24
|
+
by this binding's cross-checked specs, fixed in confium-transparency
|
|
25
|
+
v0.9.1.
|
|
26
|
+
|
|
3
27
|
## [0.7.0] — 2026-09-07
|
|
4
28
|
|
|
5
29
|
### Added
|
data/Cargo.lock
CHANGED
|
@@ -775,17 +775,18 @@ dependencies = [
|
|
|
775
775
|
|
|
776
776
|
[[package]]
|
|
777
777
|
name = "confium-transparency"
|
|
778
|
-
version = "0.
|
|
778
|
+
version = "0.9.1"
|
|
779
779
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
780
|
-
checksum = "
|
|
780
|
+
checksum = "b4ec484381b582f508f774babbc1bf1b4a98c6aadd43cde806952c6e416b62ca"
|
|
781
781
|
dependencies = [
|
|
782
782
|
"chrono",
|
|
783
|
-
"
|
|
783
|
+
"hex",
|
|
784
784
|
"serde",
|
|
785
785
|
"serde_json",
|
|
786
|
-
"sha2 0.
|
|
787
|
-
"
|
|
788
|
-
"thiserror
|
|
786
|
+
"sha2 0.11.0",
|
|
787
|
+
"subtle",
|
|
788
|
+
"thiserror 2.0.20",
|
|
789
|
+
"ureq",
|
|
789
790
|
]
|
|
790
791
|
|
|
791
792
|
[[package]]
|
data/README.adoc
CHANGED
|
@@ -103,7 +103,7 @@ end
|
|
|
103
103
|
=== `Confium::Transparency`
|
|
104
104
|
- `MerkleTree.new` / `#append(artifact_hash)` / `#root` / `#length` / `#empty?` / `#inclusion_proof(seq)`
|
|
105
105
|
- `InclusionProof#sequence` / `#steps` / `#verify(root)`
|
|
106
|
-
- `Ots.stamp(hash)` / `Ots.verify(
|
|
106
|
+
- `Ots.stamp(hash)` / `Ots.verify(proof)` / `Ots.upgrade(proof)` — real OpenTimestamps anchoring over the wire protocol (calendar HTTP, servers tried in order; the network round trip releases the GVL). `Ots::Client.new(servers)` for a custom pool; `Ots::Proof#verify` replays the op tree and classifies attestations. Network failures raise — there is no silent nil
|
|
107
107
|
|
|
108
108
|
=== `Confium::Composite` — PQ migration
|
|
109
109
|
- `.generate_ed25519_keypair` → `{ private_key:, public_key: }`
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Confium::Transparency::OTS — OpenTimestamps client
|
|
3
|
+
# Confium::Transparency::OTS — OpenTimestamps calendar client.
|
|
4
4
|
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
# (TODO.completion/011-ots-ers-exposure.md).
|
|
5
|
+
# Real wire-protocol implementation over the native extension
|
|
6
|
+
# (confium-transparency 0.8.5+): stamps POST the 32-byte digest to a
|
|
7
|
+
# calendar server and parse the returned partial proof; verification
|
|
8
|
+
# replays the op tree from the digest and classifies attestations.
|
|
9
|
+
# Network failures raise (Confium::Transparency::OTS is backed by a
|
|
10
|
+
# real HTTP client) — there is no silent nil.
|
|
12
11
|
|
|
13
12
|
module Confium
|
|
14
13
|
module Transparency
|
|
@@ -20,44 +19,48 @@ module Confium
|
|
|
20
19
|
https://a.pool.eternitywall.com
|
|
21
20
|
].freeze
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
class << self
|
|
23
|
+
# Stamp a 32-byte digest via the default calendar pool.
|
|
24
|
+
# Returns a Proof (pending attestation — Bitcoin confirmation
|
|
25
|
+
# arrives later; poll with #upgrade).
|
|
26
|
+
#
|
|
27
|
+
# @param hash [String] 32-byte SHA-256 digest to anchor
|
|
28
|
+
# @return [Confium::Transparency::OTS::Proof]
|
|
29
|
+
# @raise [IOError, ArgumentError]
|
|
30
|
+
def stamp(hash)
|
|
31
|
+
default_client.stamp(hash)
|
|
32
|
+
end
|
|
27
33
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
# Verify a proof: replay its op tree from the digest and
|
|
35
|
+
# classify the attestations.
|
|
36
|
+
#
|
|
37
|
+
# @param proof [Proof, String] the proof (or raw .ots bytes —
|
|
38
|
+
# pass the digest alongside for the String form)
|
|
39
|
+
# @param digest [String, nil] required when proof is bytes
|
|
40
|
+
# @return [Hash] { pending: [uri], bitcoin: [height],
|
|
41
|
+
# litecoin: [height], anchored: bool }
|
|
42
|
+
def verify(proof, digest = nil)
|
|
43
|
+
proof = Proof.new(digest, proof) if digest && proof.is_a?(String)
|
|
44
|
+
proof.verify
|
|
31
45
|
end
|
|
32
46
|
|
|
33
|
-
|
|
34
|
-
|
|
47
|
+
# Upgrade a pending proof (fetch a more complete one).
|
|
48
|
+
#
|
|
49
|
+
# @return [Proof]
|
|
50
|
+
def upgrade(proof)
|
|
51
|
+
default_client.upgrade(proof)
|
|
35
52
|
end
|
|
36
|
-
end
|
|
37
53
|
|
|
38
|
-
|
|
39
|
-
# Returns a Receipt (stub: returns nil — requires network).
|
|
40
|
-
#
|
|
41
|
-
# @param hash [String] 32-byte SHA-256 hash to anchor
|
|
42
|
-
# @return [Receipt, nil]
|
|
43
|
-
def self.stamp(_hash)
|
|
44
|
-
# Real implementation: calls the Rust OTS client which
|
|
45
|
-
# submits the hash to calendar servers and returns a
|
|
46
|
-
# merged proof. Requires network access.
|
|
47
|
-
nil
|
|
48
|
-
end
|
|
54
|
+
private
|
|
49
55
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
# @param receipt [Receipt, String] the OTS proof
|
|
54
|
-
# @param hash [String] the 32-byte hash
|
|
55
|
-
# @return [Boolean]
|
|
56
|
-
def self.verify(_receipt, _hash)
|
|
57
|
-
# Real implementation: calls the Rust OTS verifier which
|
|
58
|
-
# walks the Bitcoin blockchain proof.
|
|
59
|
-
false
|
|
56
|
+
def default_client
|
|
57
|
+
@default_client ||= Client.new(DEFAULT_CALENDARS)
|
|
58
|
+
end
|
|
60
59
|
end
|
|
60
|
+
|
|
61
|
+
# The native Client is defined by the extension
|
|
62
|
+
# (Confium::Transparency::OTS::Client) with #stamp / #upgrade;
|
|
63
|
+
# the Proof class carries #digest / #to_bytes / #verify.
|
|
61
64
|
end
|
|
62
65
|
end
|
|
63
66
|
end
|
data/lib/confium/transparency.rb
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
# The Transparency module itself is defined by the native Rust
|
|
6
6
|
# extension via magnus at require time. This file registers
|
|
7
7
|
# pure-Ruby autoloads for the Transparency submodules.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
# `require`, not `autoload`: the native extension defines the OTS
|
|
9
|
+
# constant at load time, which would shadow the autoload entry and
|
|
10
|
+
# keep this file from ever running — the Ruby-level convenience
|
|
11
|
+
# methods would silently vanish.
|
|
12
|
+
require 'confium/transparency/ots'
|
data/lib/confium/version.rb
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: confium
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.7.
|
|
4
|
+
version: 0.7.1
|
|
5
5
|
platform: aarch64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Open
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-09-
|
|
11
|
+
date: 2026-09-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|