186 lines
8.4 KiB
Markdown
186 lines
8.4 KiB
Markdown
# Morphit v1.0.0-beta.2
|
|
|
|
Second public beta of Morphit — a federated, non-custodial, no-KYC peer-to-peer
|
|
marketplace for fiat ↔ BTC, XMR, BLURT, USDT, USDC, DAI, BCH, LTC, DASH, DOGE,
|
|
ZEC, ARRR, DCR, SOL, ETH, and XRP trades.
|
|
|
|
This release builds on `v1.0.0-beta.1` and is focused almost entirely on the
|
|
**operator experience** — the part beta-testing surfaced as the roughest. If
|
|
you ran a beta.1 node, the headline is that running and maintaining your
|
|
instance is now a guided, menu-driven experience, and upgrades safely preserve
|
|
your configuration and signing key.
|
|
|
|
## Install
|
|
|
|
See `docs/RUN-A-MORPHIT-NODE.md` for the friendly walkthrough.
|
|
Plan two evenings: the first to set up the server and install
|
|
things, the second to troubleshoot whatever didn't work the
|
|
first time. Runs comfortably on a $5/mo VPS or a Raspberry Pi 4.
|
|
|
|
For the day-zero procedure (the morning-of and first-24-hour
|
|
operator runbook) see `docs/LAUNCH-DAY.md`.
|
|
|
|
For ongoing day-1-through-day-7 monitoring see
|
|
`docs/POST-LAUNCH-WEEK-ONE.md`.
|
|
|
|
## Upgrading from beta.1
|
|
|
|
Use the built-in upgrader — `docs/UPGRADING.md` has the full procedure:
|
|
|
|
sudo -u morphit npx morphit-ops upgrade
|
|
|
|
It downloads this release, verifies the SHA-256, backs up your current
|
|
install, swaps in the new code, **carries your config and signing key
|
|
forward automatically**, reinstalls dependencies, and restarts your
|
|
services — rolling everything back if any step fails.
|
|
|
|
> **One-time note for this specific upgrade.** `morphit-ops upgrade` runs
|
|
> the carry-forward using the code of the version you're upgrading *from*.
|
|
> beta.1 predates that feature, so on this first jump your config is not
|
|
> auto-carried — it is **not** lost, it's in the timestamped backup. Before
|
|
> upgrading, copy `morphit.config.env`, `morphit.env`, `apps/relay/keystore.*`,
|
|
> and `apps/relay/altnet/` somewhere safe; after the upgrade, confirm they're
|
|
> present in your install dir and, if any are missing, copy them back from
|
|
> `/opt/morphit.bak-<timestamp>/` and restart `morphit-indexer` and
|
|
> `morphit-relay`. From beta.2 onward every upgrade preserves them for you.
|
|
|
|
Your on-chain operator registration is unaffected by any upgrade — it lives
|
|
on the Blurt chain, not in your install.
|
|
|
|
## Verify the download
|
|
|
|
sha256sum -c morphit-v1.0.0-beta.2.tar.gz.sha256
|
|
|
|
For belt-and-braces, see `docs/UPGRADING.md` "Belt-and-braces verification"
|
|
— it walks you through cloning the repo separately, running
|
|
`git tag -v v1.0.0-beta.2`, and re-deriving the manifest from a
|
|
clean checkout to compare against the tarball you downloaded.
|
|
|
|
## What's new since beta.1
|
|
|
|
Everything below is shipped, smoke-tested, and source-verifiable against the
|
|
tagged commit.
|
|
|
|
### One command to run your instance
|
|
|
|
- **`morphit-ops` now opens a menu.** Run it with no arguments on a
|
|
terminal and you get a grouped, plain-English menu — set up and
|
|
change the instance, check on it (status, signups, abuse alerts,
|
|
pending transfers, moderation flags), or manage keys and payment
|
|
methods — so you pick an action by what you want to do instead of
|
|
memorizing subcommand names. Every action is still runnable
|
|
directly (e.g. `morphit-ops status`), and scripts/cron are
|
|
unaffected: non-interactive runs print help exactly as before.
|
|
- **`morphit-ops edit` for ongoing changes.** Change your RPC
|
|
endpoints, description/SEO, origin, listing fees, or operator tag
|
|
without re-running the full setup. It writes atomically, preserves
|
|
permissions, and tells you exactly which services to restart.
|
|
- **Safe re-run of the setup wizard.** Running `morphit-ops init` on
|
|
an instance that's already configured no longer risks clobbering it
|
|
— it warns you, then offers to edit a few settings (recommended),
|
|
overwrite everything (with a confirmation and a backup), or cancel.
|
|
|
|
### A dedicated hardening wizard
|
|
|
|
- **`morphit-ops harden`** (also "Harden this server" in the menu)
|
|
walks you through securing the host: it generates a **personalized
|
|
hardening checklist** with your domain and your reverse-proxy choice
|
|
baked in — leading with the SSH-lockout safety rule — and can walk
|
|
you through BunkerWeb, daily database backups, and the full
|
|
Ubuntu / SSH / firewall / fail2ban / TLS checklist, or point you at
|
|
the fully-automated Ansible path. Nothing here is Morphit-specific;
|
|
it's the baseline every internet-facing server needs, sequenced for
|
|
you with copy-paste commands.
|
|
|
|
### Setup wizard improvements
|
|
|
|
- **BunkerWeb step.** The setup wizard now asks whether BunkerWeb (an
|
|
open-source reverse-proxy WAF, shipped turnkey at `ops/bunkerweb/`)
|
|
will front your instance, and wires the trusted-proxy setting for
|
|
you when you say yes — so your relay sees real client IPs.
|
|
- **Hardening step.** The wizard finishes by offering to generate the
|
|
same personalized hardening checklist described above.
|
|
- **Matrix alerting is on by default.** The optional Matrix incident
|
|
bot is now presented as a recommended default with clear setup
|
|
steps for its own credentials, rather than an easy-to-miss opt-in.
|
|
- **Clearer prompts throughout** — the wizard greeting reflects the
|
|
real number of steps, the optional steps are clearly skippable with
|
|
safe defaults, and the prompts spell out where each value appears
|
|
publicly.
|
|
|
|
### Clearer on-chain registration
|
|
|
|
- **Honest, accurate output from `morphit-ops register`.** The success
|
|
screen no longer prints a confusing "Block: undefined" (Blurt
|
|
confirms asynchronously — there's no block number at broadcast time)
|
|
and no longer leaks internal RPC retry noise when your node
|
|
transparently fails over to a healthy endpoint.
|
|
- **Specific failure guidance.** When a broadcast fails, the tool now
|
|
tells you exactly why (reserved tag, taken tag, wrong key, low Mana,
|
|
all endpoints unreachable, …) and what to do — and on a low-Mana
|
|
failure it offers to retry in place once you've powered up, with no
|
|
wizard re-run.
|
|
- **Key verification made concrete.** Prompts that ask you to confirm
|
|
your relay's key now name the **"Active Auth"** field and give you
|
|
the exact explorer URL — `https://blocks.blurtwallet.com/#/@<your-account>`
|
|
— to check it against. `morphit-ops show-key` uses the same
|
|
guidance.
|
|
- **Re-registration reminder.** If you change your origin or operator
|
|
tag with `morphit-ops edit`, the tool reminds you to re-run
|
|
`morphit-ops register` so the rest of the federation sees the change
|
|
(those two values live in your on-chain record; other settings are
|
|
local-only).
|
|
|
|
### Safer upgrades
|
|
|
|
- **Your config and keys survive upgrades.** `morphit-ops upgrade` now
|
|
explicitly carries `morphit.config.env`, `morphit.env`, your relay
|
|
keystore, your alt-network keys, and your hardening checklist forward
|
|
into each new release — with their permissions intact — so a release
|
|
upgrade brings your instance back up exactly as it was, on the new
|
|
code, with no re-configuration. (See the one-time note above for the
|
|
beta.1 → beta.2 jump specifically.)
|
|
- **`docs/UPGRADING.md` corrected and expanded** to document the
|
|
carry-forward step and the exact files preserved.
|
|
|
|
### Documentation and accuracy
|
|
|
|
- **`docs/RUN-A-MORPHIT-NODE.md`** gained a "Managing your instance
|
|
later" section covering the menu, the hardening wizard, and the
|
|
re-registration rule.
|
|
- **README and operator docs** were swept for accuracy against the
|
|
actual code (app and config inventory, the relay's key type, the
|
|
reverse-proxy configs that actually ship, and more).
|
|
|
|
## Reach
|
|
|
|
Morphit instances are reachable over the public web, Tor `.onion`
|
|
hidden services, I2P `.b32` addresses, Lokinet, and Nostr. The
|
|
federation directory at `/instances` on any node shows the other
|
|
known instances and their alt-network addresses.
|
|
|
|
## Reporting issues
|
|
|
|
Bug reports: open a New Issue on Forgejo
|
|
(`git.agorise.net/agorise/morphit`) — the bug-report template
|
|
auto-loads with the fields needed.
|
|
|
|
**Security disclosures** go to the operator's Matrix DM channel
|
|
listed in §16 of the bug-report template (or in
|
|
`docs/SECURITY.md`). Do NOT post security issues as public
|
|
Forgejo issues or in the community Matrix room.
|
|
|
|
## Acknowledgements
|
|
|
|
Built on Blurt for the chain layer. The audit campaign is
|
|
publicly readable in this repo, and so are the design tradeoffs
|
|
— we made arguable calls, especially around chat-crypto
|
|
primitives, and the reasoning is in the ADRs for you to push
|
|
back on.
|
|
|
|
---
|
|
|
|
**Tag:** `v1.0.0-beta.2`
|
|
**Built by:** Forgejo Actions from a signed annotated tag (see
|
|
`.forgejo/workflows/release.yml`)
|
|
**License:** AGPL-3.0-only
|