Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
162 commits
Select commit Hold shift + click to select a range
c9a894d
Merge pull request #8 from MoreloNetwork/master
MrKris7100 Jul 30, 2023
3885b15
Static release test
MrKris7100 Jul 30, 2023
53a3241
Added arguments to linux build script
MrKris7100 Jul 30, 2023
31d3d91
Update test.yml
MrKris7100 Jul 30, 2023
99a6154
Update static build gh
MrKris7100 Jul 30, 2023
c545074
Update test.yml
MrKris7100 Jul 30, 2023
b4e8efd
Update test.yml
MrKris7100 Jul 30, 2023
6d2f49e
Makefile fix
MrKris7100 Jul 30, 2023
441bafd
Update test.yml
MrKris7100 Jul 30, 2023
6bdc0bd
Update test.yml
MrKris7100 Jul 30, 2023
c3e1c68
Create monero.yml
MrKris7100 Jul 30, 2023
5ba8ddb
boost 1.76 compatibility
MrKris7100 Jul 30, 2023
18d5e40
boost 1.81 compatibility
MrKris7100 Jul 30, 2023
1286c7d
Boost 1.74 compatibility
MrKris7100 Jul 30, 2023
9185117
Update blockchain.h
MrKris7100 Jul 30, 2023
35ce6f2
Delete monero.yml
MrKris7100 Jul 30, 2023
1fa3abb
Update wallet2.h
MrKris7100 Jul 30, 2023
086799b
Added missing include
MrKris7100 Jul 31, 2023
c24df6d
Boost 1.81.0 fix?
MrKris7100 Dec 15, 2023
cfd333c
Halvings
MrKris7100 Feb 2, 2024
85da2da
Variables type fix
MrKris7100 Feb 2, 2024
1638548
Variables type fix #2
MrKris7100 Feb 2, 2024
976dadb
Update blockchain.cpp
MrKris7100 Feb 2, 2024
cda8377
Testnet hardfork V17
MrKris7100 Feb 2, 2024
e06b0f5
Halving fix
MrKris7100 Feb 2, 2024
a67e1e6
Update cryptonote_tx_utils.cpp
MrKris7100 Feb 2, 2024
7e59c92
Update cryptonote_config.h
MrKris7100 Feb 2, 2024
62c1e79
Update cryptonote_tx_utils.cpp
MrKris7100 Feb 2, 2024
26b6954
reward validation fix
MrKris7100 Feb 2, 2024
029b8f8
Halving algo fix
MrKris7100 Feb 2, 2024
34cc955
Added hardfork V17
MrKris7100 Feb 2, 2024
4ec34c5
Restore wallet addresses
MrKris7100 Feb 3, 2024
5c5ae02
Preparing for governance wallet change
MrKris7100 Feb 9, 2024
3ff01fa
V17 preparing #2
MrKris7100 Feb 9, 2024
c0a18cd
Update cryptonote_tx_utils.cpp
MrKris7100 Feb 9, 2024
e0173e2
Enable V17 hardfork on 10 block on testnet
MrKris7100 Feb 9, 2024
7f03bf0
Update cryptonote_tx_utils.cpp
MrKris7100 Feb 9, 2024
5fce30e
Update cryptonote_tx_utils.cpp
MrKris7100 Feb 9, 2024
d813179
Update blockchain.cpp
MrKris7100 Mar 17, 2024
5e5251a
Adding devs wallet moved to hardfork 18
MrKris7100 Mar 23, 2024
e16945a
Moved devs wallet to v18
MrKris7100 Mar 23, 2024
31c3bb3
Update blockchain.cpp
MrKris7100 Mar 23, 2024
ca01f1a
V17 New reward algorithm test
MrKris7100 Mar 23, 2024
5141545
Remove governance fee
MrKris7100 Mar 23, 2024
cb2a3a6
Set v17 hardfork block height to 3
MrKris7100 Mar 23, 2024
90e5bb5
Devs reward
MrKris7100 Mar 24, 2024
a965263
Update cryptonote_tx_utils.cpp
MrKris7100 Mar 24, 2024
9691084
Variable type fix
MrKris7100 Mar 24, 2024
0dcd11a
Update cryptonote_tx_utils.cpp
MrKris7100 Mar 24, 2024
3179724
V17 added to mainnet
MrKris7100 Mar 24, 2024
bc000d5
Update build.yml
MrKris7100 Mar 25, 2024
3d97475
Update build.yml
MrKris7100 Mar 25, 2024
b94b0be
Update build.yml
MrKris7100 Mar 25, 2024
a88cff2
Update build.yml
MrKris7100 Mar 25, 2024
a907b0e
Update build.yml
MrKris7100 Mar 25, 2024
2747e91
Update build.yml
MrKris7100 Mar 26, 2024
59db2b6
Linux build various boost versions
MrKris7100 Mar 26, 2024
0da3220
Update build.yml
MrKris7100 Mar 26, 2024
238091b
Update build.yml
MrKris7100 Mar 26, 2024
a66a00d
Update build.yml
MrKris7100 Mar 26, 2024
c11771a
Update build.yml
MrKris7100 Mar 26, 2024
0f63b20
Disable V17 fork
MrKris7100 Apr 4, 2024
ab871e2
Update cryptonote_tx_utils.cpp
MrKris7100 Apr 6, 2024
a88c479
Update build.yml
MrKris7100 Apr 6, 2024
1660a93
Update blockchain.cpp
MrKris7100 Apr 6, 2024
580e857
Update blockchain.cpp
MrKris7100 Apr 6, 2024
6c5c584
Hardfork V18
MrKris7100 Apr 16, 2024
e63691d
Update notify system, new seed nodes and preparing for new version
dmkng Sep 5, 2024
17326e3
Fix typo
dmkng Sep 5, 2024
b472b7b
Made update notify mechanism safer
dmkng Sep 5, 2024
964fe4d
DNS checkpoints and segregation
dmkng Sep 5, 2024
3b1f458
OpenAlias for wallet addresses and small fixes
dmkng Sep 9, 2024
0a2f50e
Fix missing variable
dmkng Sep 9, 2024
09353d2
Codebase cleanup
dmkng Sep 9, 2024
b0ae9fa
More codebase cleanup and checkpoints
dmkng Sep 9, 2024
9fb9b08
New build config
dmkng Sep 9, 2024
4e49518
Fix build config
dmkng Sep 9, 2024
f3fafce
Fix build config again
dmkng Sep 9, 2024
73bd960
Fix error on ubuntu 24
dmkng Sep 9, 2024
53b1b55
Test build config
dmkng Sep 9, 2024
7616fa0
Cleanup build script
dmkng Sep 9, 2024
730d462
Fix typo in build script
dmkng Sep 9, 2024
ab8bdd4
Fix another typo in build config
dmkng Sep 9, 2024
b93e213
Fix build tags
dmkng Sep 9, 2024
72eeec1
Update notify improvements
dmkng Sep 10, 2024
1a94687
Better build script
dmkng Sep 19, 2024
40e510a
Small fix in build script
dmkng Sep 19, 2024
4d17e85
Blockchain update
dmkng Sep 19, 2024
03c65b0
Merge branch 'dev-dmkng' into dev-mrkris7100
MrKris7100 May 23, 2025
9d77175
Update cryptonote_basic_impl.cpp
MrKris7100 May 23, 2025
9ede9fa
Update build.yml
MrKris7100 May 23, 2025
7fb77b3
Update build.yml
MrKris7100 May 24, 2025
021dfa0
Update boost.mk
MrKris7100 May 24, 2025
a692b41
update depends
MrKris7100 May 24, 2025
9a7cb30
Update boost.mk
MrKris7100 May 24, 2025
fac76b4
Update boost.mk
MrKris7100 May 24, 2025
9b51a5a
Update build scripts
MrKris7100 May 24, 2025
93f669c
Revert "Update build scripts"
MrKris7100 May 24, 2025
7d24e03
Update Makefile
MrKris7100 May 24, 2025
b5b0f8e
Update boost.mk
MrKris7100 May 24, 2025
61d3466
Update boost.mk
MrKris7100 May 24, 2025
71a7e8c
Update boost.mk
MrKris7100 May 24, 2025
974a54c
Update boost.mk
MrKris7100 May 24, 2025
a7ac122
Update build.yml
MrKris7100 May 24, 2025
3673082
New fees
MrKris7100 May 25, 2025
50a8b4d
Dependency fix
dmkng May 25, 2025
a4205b1
Update CMakeLists.txt
MrKris7100 May 25, 2025
922baf3
fees fix
MrKris7100 May 25, 2025
553e489
Update blockchain.cpp
MrKris7100 May 25, 2025
19fe9bc
Create windows.yml
MrKris7100 May 27, 2025
30f6acc
Update windows.yml
MrKris7100 May 27, 2025
c535e50
Update windows.yml
MrKris7100 May 27, 2025
f396ffb
Missing graphviz
MrKris7100 May 27, 2025
bf274f1
Missing doxygen
MrKris7100 May 27, 2025
84aea35
Update windows.yml
MrKris7100 May 27, 2025
860e326
Build fix
dmkng May 27, 2025
004d767
Additional build fix
dmkng May 27, 2025
bc41949
Fix build paths
dmkng May 27, 2025
ffc1ec7
Build fix
dmkng May 27, 2025
0a7d674
Dependency fix
dmkng May 27, 2025
75ec4c8
Update blockchain.cpp
dmkng May 27, 2025
b37240e
Fee fix and some updates
dmkng May 27, 2025
cdb758c
Workflow test
dmkng May 27, 2025
7c8a0b9
Small fix
dmkng May 27, 2025
a974c60
Workflow improvement and small fixes
dmkng May 27, 2025
1122eda
V18 hardfork height change
MrKris7100 May 27, 2025
00845b5
Revert "Workflow improvement and small fixes"
MrKris7100 May 28, 2025
c9f628d
Restore <limits> library
MrKris7100 May 28, 2025
0e24d37
Build fixes
dmkng May 28, 2025
7060fef
Small build fix
dmkng May 28, 2025
665d3f6
Build cleanup
dmkng May 28, 2025
3367526
Workflow fix
dmkng May 28, 2025
d1997d6
Workspace and blockchain fixes
dmkng May 28, 2025
b59a498
Small build fixes
dmkng May 28, 2025
54432f0
Windows workflow fix
dmkng May 28, 2025
8d77733
Another workflow fix
dmkng May 28, 2025
cde2164
Workflow cleanup
dmkng May 28, 2025
0898b46
Workflow rename
dmkng May 28, 2025
07ad38b
Merge branch 'dev-mrkris7100' into dev-dmkng
dmkng May 31, 2025
a336a81
Revert "Merge branch 'dev-mrkris7100' into dev-dmkng"
dmkng May 31, 2025
c9e3624
Test older Boost
dmkng Jun 1, 2025
c363493
Fee fix? :)
MrKris7100 Jun 2, 2025
704f7e6
Update TESTNET hardfork V18 height
MrKris7100 Jun 3, 2025
b521754
Test newer Boost
dmkng Jun 5, 2025
db8384f
Finally working MSYS2 build!
dmkng Jun 5, 2025
fe23b75
Workflow test
dmkng Jun 5, 2025
ade59a7
Workflow fix
dmkng Jun 5, 2025
1ce548f
Workflow ependency fix
dmkng Jun 5, 2025
0946bbc
Added missing workflow dependency
dmkng Jun 5, 2025
1cb639d
Workflow package fix
dmkng Jun 6, 2025
f553cea
Workflow upload fix
dmkng Jun 6, 2025
27f85cc
Added slim build option
dmkng Jun 6, 2025
4d4394e
Update dependencies
dmkng Jun 16, 2025
cb92132
Removed hardfork v18 from mainnet
MrKris7100 Jun 16, 2025
0df3e68
Remove devs reward from v18
MrKris7100 Jun 16, 2025
3619373
Set hardfork date
MrKris7100 Jun 16, 2025
78e34b9
Updated checkpoints.dat To 715100 block
MrKris7100 Jun 16, 2025
5fe830a
Update checkpoints.cpp
MrKris7100 Jun 16, 2025
4c0211f
Update blockchain.cpp
MrKris7100 Jun 16, 2025
bf48efe
Updater fix
dmkng Jun 16, 2025
f3f443f
Update build instructions
dmkng Jun 16, 2025
f4621a0
Merge branch 'master' into dev-dmkng
dmkng Jun 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: ci/gh-actions/windows-build-test

on:
workflow_dispatch:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'

env:
USE_DEVICE_TREZOR_MANDATORY: ON
CCACHE_TEMPDIR: /tmp/.ccache-temp
CCACHE_DIR: /tmp/.ccache
CCACHE_SETTINGS: |
ccache --max-size=150M
ccache --set-config=compression=true

jobs:
windows:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: mingw-w64-x86_64-toolchain mingw-w64-x86_64-autotools mingw-w64-x86_64-doxygen mingw-w64-x86_64-cmake mingw-w64-x86_64-ccache mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-protobuf mingw-w64-x86_64-libusb mingw-w64-x86_64-unbound mingw-w64-x86_64-graphviz git mingw-w64-x86_64-pkgconf mingw-w64-x86_64-ccache mingw-w64-x86_64-libunwind mingw-w64-x86_64-gperf mingw-w64-x86_64-miniupnpc mingw-w64-x86_64-zeromq mingw-w64-x86_64-cppzmq mingw-w64-x86_64-gpgme mingw-w64-x86_64-dlfcn patch zip
- name: ccache
uses: actions/cache@v4
with:
path: ${{ steps.msys2.outputs.msys2-location }}\tmp\.ccache
key: ccache-${{ runner.os }}-msys2-${{ github.sha }}
restore-keys: ccache-${{ runner.os }}-msys2
- name: install boost
run: |
pacman --noconfirm -U contrib/mingw-w64-x86_64-boost-1.83.0-2-any.pkg.tar.zst
- name: build
run: |
${{ env.CCACHE_SETTINGS }}
make -j$(nproc) release-static-win-x86_64
- name: package
run: |
cd "${{ github.workspace }}\build\release\bin"
zip -9 ../win-x64.zip morelo*
cd ..
mv win-x64.zip $(sha256sum win-x64.zip | cut -d " " -f 1).zip
- uses: actions/upload-artifact@v4
with:
name: win-x64
path: '${{ github.workspace }}\build\release\*.zip'
compression-level: 0
136 changes: 71 additions & 65 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,90 +1,96 @@
name: ci/gh-actions/build

on: [push, pull_request, workflow_dispatch]
on:
workflow_dispatch:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'

env:
APT_SET_CONF: |
echo "Acquire::Retries \"3\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
echo "Acquire::http::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
echo "Acquire::ftp::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
APT_INSTALL: 'sudo apt-get update && sudo apt-get -y install build-essential cmake pkg-config libboost-all-dev libssl-dev libsodium-dev libunwind-dev liblzma-dev libreadline-dev libldns-dev libexpat1-dev libudev-dev libusb-1.0-0-dev libhidapi-dev xsltproc gperf autoconf automake libtool-bin miniupnpc doxygen graphviz libunbound-dev libzmq3-dev libnorm-dev libpgm-dev libprotobuf-dev protobuf-compiler ccache'
USE_DEVICE_TREZOR_MANDATORY: ON
CCACHE_TEMPDIR: /tmp/.ccache-temp
CCACHE_DIR: /tmp/.ccache
CCACHE_SETTINGS: |
ccache --max-size=150M
ccache --set-config=compression=true
ccache --max-size=150M
ccache --set-config=compression=true

jobs:
build-windows:
runs-on: ubuntu-20.04
env:
CCACHE_TEMPDIR: /tmp/.ccache-temp
strategy:
fail-fast: false
matrix:
toolchain:
- name: "build-depends-windows-x64"
host: "x86_64-w64-mingw32"
packages: "cmake python3 g++-mingw-w64-x86-64 qttools5-dev-tools"
name: ${{ matrix.toolchain.name }}
windows:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive
# Most volatile cache
- name: ccache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.ccache
key: ccache-${{ matrix.toolchain.host }}-${{ github.sha }}
restore-keys: ccache-${{ matrix.toolchain.host }}-
# Less volatile cache
- name: depends cache
uses: actions/cache@v3
path: /tmp/.ccache
key: ccache-${{ runner.os }}-x86_64-w64-mingw32-${{ github.sha }}
restore-keys: ccache-${{ runner.os }}-x86_64-w64-mingw32
- name: depends ccache
uses: actions/cache@v4
with:
path: contrib/depends/built
key: depends-${{ matrix.toolchain.host }}-${{ hashFiles('contrib/depends/packages/*') }}
key: ccache-depends-${{ runner.os }}-x86_64-w64-mingw32-${{ hashFiles('contrib/depends/packages/*') }}
restore-keys: |
depends-${{ matrix.toolchain.host }}-${{ hashFiles('contrib/depends/packages/*') }}
depends-${{ matrix.toolchain.host }}-
# Static cache
- name: set apt conf
run: ${{env.APT_SET_CONF}}
ccache-depends-${{ runner.os }}-x86_64-w64-mingw32-${{ hashFiles('contrib/depends/packages/*') }}
ccache-depends-${{ runner.os }}-x86_64-w64-mingw32
- name: install dependencies
run: sudo apt update; sudo apt -y install libboost-all-dev libsodium-dev build-essential libtool cmake autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache ${{ matrix.toolchain.packages }}
- name: prepare w64-mingw32
if: ${{ matrix.toolchain.host == 'x86_64-w64-mingw32' }}
run: ${{ env.APT_INSTALL }} g++-mingw-w64-x86-64 zip
- name: prepare toolchain
run: |
sudo update-alternatives --set ${{ matrix.toolchain.host }}-g++ $(which ${{ matrix.toolchain.host }}-g++-posix)
sudo update-alternatives --set ${{ matrix.toolchain.host }}-gcc $(which ${{ matrix.toolchain.host }}-gcc-posix)
sudo update-alternatives --set x86_64-w64-mingw32-g++ $(which x86_64-w64-mingw32-g++-posix)
sudo update-alternatives --set x86_64-w64-mingw32-gcc $(which x86_64-w64-mingw32-gcc-posix)
- name: build
run: |
${{env.CCACHE_SETTINGS}}
make depends target=${{ matrix.toolchain.host }} cmake_opts=${{ matrix.toolchain.cmake_opts }} -j2
- uses: actions/upload-artifact@v3
if: ${{ matrix.toolchain.host == 'x86_64-w64-mingw32' || matrix.toolchain.host == 'x86_64-unknown-linux-gnu' || matrix.toolchain.host == 'aarch64-linux-gnu' || 'arm-linux-gnueabihf' }}
${{ env.CCACHE_SETTINGS }}
make -j$(nproc) depends target=x86_64-w64-mingw32 buildtag=win-x64
- name: package
run: |
cd ${{ github.workspace }}/build/release/bin
zip -9 ../win-x64.zip morelo*
cd ..
mv win-x64.zip $(sha256sum win-x64.zip | cut -d " " -f 1).zip
- uses: actions/upload-artifact@v4
with:
name: windows-release
path: |
/home/runner/work/morelo/morelo/build/${{ matrix.toolchain.host }}/release/bin/morelo*
name: win-x64
path: '${{ github.workspace }}/build/release/*.zip'
compression-level: 0

build-ubuntu:
runs-on: ubuntu-20.04
linux:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-24.04, ubuntu-22.04 ]
env:
BUILD_NAME: ${{ matrix.os == 'ubuntu-24.04' && 'ubuntu24' || 'ubuntu22' }}
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
with:
submodules: recursive
- name: remove bundled boost
run: sudo rm -rf /usr/local/share/boost
- name: set apt conf
run: |
echo "Acquire::Retries \"3\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
echo "Acquire::http::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
echo "Acquire::ftp::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
- name: update apt
run: sudo apt update
- name: install morelo dependencies
run: sudo apt -y install libboost-all-dev build-essential cmake graphviz doxygen libunwind8-dev pkg-config libssl-dev libsodium-dev libhidapi-dev libusb-1.0-0-dev gperf libreadline-dev
- uses: actions/cache@v4
with:
path: /tmp/.ccache
key: ccache-${{ runner.os }}-${{ matrix.os }}-${{ github.sha }}
restore-keys: ccache-${{ runner.os }}-${{ matrix.os }}
- name: install dependencies
run: ${{ env.APT_INSTALL }}
- name: build
run: make -j2
- name: Upload linux artifacts
uses: actions/upload-artifact@master
run: |
${{ env.CCACHE_SETTINGS }}
make -j$(nproc) release-${{ env.BUILD_NAME }}
- name: package
run: |
cd ${{ github.workspace }}/build/release/bin
tar cJf ../linux-x64-${{ env.BUILD_NAME }}.tar.xz --owner=0 --group=0 morelo*
cd ..
mv linux-x64-${{ env.BUILD_NAME }}.tar.xz $(sha256sum linux-x64-${{ env.BUILD_NAME }}.tar.xz | cut -d " " -f 1).tar.xz
- uses: actions/upload-artifact@v4
with:
name: linux-release
path: 'build/**/**/morelo*'
name: linux-x64-${{ env.BUILD_NAME }}
path: '${{ github.workspace }}/build/release/*.tar.xz'
compression-level: 0
33 changes: 0 additions & 33 deletions .github/workflows/legacy.yml

This file was deleted.

46 changes: 23 additions & 23 deletions ANONYMITY_NETWORKS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Anonymity Networks with Arqma
# Anonymity Networks with Morelo

Currently only Tor and I2P have been integrated into Arqma. The usage of
Currently only Tor and I2P have been integrated into Morelo. The usage of
these networks is still considered experimental - there are a few pessimistic
cases where privacy is leaked. The design is intended to maximize privacy of
the source of a transaction by broadcasting it over an anonymity network, while
Expand All @@ -16,11 +16,11 @@ will only be sent to peers on anonymity networks. If an anonymity network is
enabled but no peers over an anonymity network are available, an error is
logged and the transaction is kept for future broadcasting over an anonymity
network. The transaction will not be broadcast unless an anonymity connection
is made or until `arqmad` is shutdown and restarted with only public
is made or until `morelod` is shutdown and restarted with only public
connections enabled.

Anonymity networks can also be used with `arqma-wallet-cli` and
`arqma-wallet-rpc` - the wallets will connect to a daemon through a proxy. The
Anonymity networks can also be used with `morelo-wallet-cli` and
`morelo-wallet-rpc` - the wallets will connect to a daemon through a proxy. The
daemon must provide a hidden service for the RPC itself, which is separate from
the hidden service for P2P connections.

Expand All @@ -42,13 +42,13 @@ additional peers can be found through typical p2p peerlist sharing.
### Outbound Connections

Connecting to an anonymous address requires the command line option
`--proxy` which tells `arqmad` the ip/port of a socks proxy provided by a
`--proxy` which tells `morelod` the ip/port of a socks proxy provided by a
separate process. On most systems the configuration will look like:

> `--proxy tor,127.0.0.1:9050,10`
> `--proxy i2p,127.0.0.1:9000`

which tells `arqmad` that ".onion" p2p addresses can be forwarded to a socks
which tells `morelod` that ".onion" p2p addresses can be forwarded to a socks
proxy at IP 127.0.0.1 port 9050 with a max of 10 outgoing connections and
".b32.i2p" p2p addresses can be forwarded to a socks proxy at IP 127.0.0.1 port
9000 with the default max outgoing connections. Since there are no seed nodes
Expand All @@ -64,29 +64,29 @@ seed nodes on ALL networks, which will typically be undesireable.
### Inbound Connections

Receiving anonymity connections is done through the option
`--anonymous-inbound`. This option tells `arqmad` the inbound address, network
`--anonymous-inbound`. This option tells `morelod` the inbound address, network
type, and max connections:

> `--anonymous-inbound rveahdfho7wo4b2m.onion:29996,127.0.0.1:29996,25`
> `--anonymous-inbound cmeua5767mz2q5jsaelk2rxhf67agrwuetaso5dzbenyzwlbkg2q.b32.i2p:5000,127.0.0.1:30000`

which tells `arqmad` that a max of 25 inbound Tor connections are being
received at address "rveahdfho7wo4b2m.onion:29996" and forwarded to `arqmad`
which tells `morelod` that a max of 25 inbound Tor connections are being
received at address "rveahdfho7wo4b2m.onion:29996" and forwarded to `morelod`
localhost port 29996, and a default max I2P connections are being received at
address "cmeua5767mz2q5jsaelk2rxhf67agrwuetaso5dzbenyzwlbkg2q.b32.i2p:5000" and
forwarded to `arqmad` localhost port 30000.
forwarded to `morelod` localhost port 30000.
These addresses will be shared with outgoing peers, over the same network type,
otherwise the peer will not be notified of the peer address by the proxy.

### Wallet RPC

An anonymity network can be configured to forward incoming connections to a
`arqmad` RPC port - which is independent from the configuration for incoming
`morelod` RPC port - which is independent from the configuration for incoming
P2P anonymity connections. The anonymity network (Tor/i2p) is
[configured in the same manner](#configuration), except the localhost port
must be the RPC port (typically 19994 for mainnet) instead of the p2p port:

> HiddenServiceDir /var/lib/tor/data/arqma
> HiddenServiceDir /var/lib/tor/data/morelo
> HiddenServicePort 19994 127.0.0.1:19994
Then the wallet will be configured to use a Tor/i2p address:
> `--proxy 127.0.0.1:9050`
Expand Down Expand Up @@ -121,12 +121,12 @@ distribute the address to its other peers.
Tor must be configured for hidden services. An example configuration ("torrc")
might look like:

> HiddenServiceDir /var/lib/tor/data/arqma
> HiddenServiceDir /var/lib/tor/data/morelo
> HiddenServicePort 29996 127.0.0.1:29996

This will store key information in `/var/lib/tor/data/arqma` and will forward
This will store key information in `/var/lib/tor/data/morelo` and will forward
"Tor port" 29996 to port 29996 of ip 127.0.0.1. The file
`/usr/lib/tor/data/arqma/hostname` will contain the ".onion" address for use
`/usr/lib/tor/data/morelo/hostname` will contain the ".onion" address for use
with `--anonymous-inbound`.

I2P must be configured with a standard server tunnel. Configuration differs by
Expand All @@ -146,7 +146,7 @@ sees a transaction over Tor, it could _assume_ (possibly incorrectly) that the
transaction originated from the peer. If both the Tor connection and an
IPv4/IPv6 connection have timestamps that are approximately close in value they
could be used to link the two connections. This is less likely to happen if the
system clock is fairly accurate - many peers on the Arqma-Network should have
system clock is fairly accurate - many peers on the Morelo metwork should have
similar timestamps.

#### Mitigation
Expand All @@ -159,31 +159,31 @@ more difficult.

### Bandwidth Usage

An ISP can passively monitor `arqmad` connections from a node and observe when
An ISP can passively monitor `morelod` connections from a node and observe when
a transaction is sent over a Tor/I2P connection via timing analysis + size of
data sent during that timeframe. I2P should provide better protection against
this attack - its connections are not circuit based. However, if a node is
only using I2P for broadcasting Arqma transactions, the total aggregate of
only using I2P for broadcasting Morelo transactions, the total aggregate of
I2P data would also leak information.

#### Mitigation

There is no current mitigation for the user right now. This attack is fairly
sophisticated, and likely requires support from the internet host of an Arqma
sophisticated, and likely requires support from the internet host of an Morelo
user.

In the near future, "whitening" the amount of data sent over anonymity network
connections will be performed. An attempt will be made to make a transaction
broadcast indistinguishable from a peer timed sync command.

### Intermittent Arqma Syncing
### Intermittent Morelo Syncing

If a user only runs `arqmad` to send a transaction then quit, this can also
If a user only runs `morelod` to send a transaction then quit, this can also
be used by an ISP to link a user to a transaction.

#### Mitigation

Run `arqmad` as often as possible to conceal when transactions are being sent.
Run `morelod` as often as possible to conceal when transactions are being sent.
Future versions will also have peers that first receive a transaction over an
anonymity network delay the broadcast to public peers by a randomized amount.
This will not completetely mitigate a user who syncs up sends then quits, in
Expand Down
Loading
Loading