Technical · Raw markdown

Source: pcoc reference/java/ at aaa8946.

Java reference

The Java implementation of Satoshi Hike. It is one of three independent references. It is a guide, not the specification. Where it disagrees with the SPEC, the specification wins and this tree has a bug.

This port does not generate the conformance vectors. v2.sh compiles the sources and runs pcoc.conformance.V2Pack and pcoc.hike.Spec6Pins against spec/conformance/v2.0/.

Tag

The current tag is ref-java-v2.0.2.

Toolchain

JDK 21 or newer is required. JDK 17 does not work. There is no Gradle and no Maven. reference/java/v2.sh runs javac --release 21.

Check with javac -version. It must print 21 or higher. On 17, install a JDK 21 side by side, point JAVA_HOME at it, and put $JAVA_HOME/bin first on PATH.

Test

From the repository root:

bash reference/java/v2.sh

On success the script exits 0 after the conformance and pin checks. On a javac older than 21 it stops at once and prints:

v2.sh: JDK 21 or newer is required (javac reports: …). On JDK 17, install a JDK 21 side by side, point JAVA_HOME at it, and put $JAVA_HOME/bin first on PATH.

It does not skip.

Produce and verify

After v2.sh has compiled (or the same javac --release 21 line), the classes are pcoc.cli.Produce and pcoc.cli.Verify. Verify writes a section 14 record. Exit status is not an admission decision.

Spec pin

reference/SPEC_PIN names spec-v2.0.3 and the vector hash. Check it with python3 reference/tools/check_spec_pin.py from the repository root.

Demo keys

The demo seed-phrase flag is outside this port. It is not production_seed.


From pcoc reference/java/README.md at aaa8946. Raw markdown.