Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge branch 'static-dev' into static #89

Merged
merged 41 commits into from
Nov 24, 2024
Merged

Merge branch 'static-dev' into static #89

merged 41 commits into from
Nov 24, 2024

Conversation

DeckerSU
Copy link
Owner

Changes:

  • Fix libsodium build in cases where git.savannah.gnu.org is not serving config.guess / config.sub (disable auto update)
  • Fix wallet-utility linkage
  • Fix launch and following notarizations for both old and new GLEEC chains (resolved dual GLEEC issue)
  • Fix ed25519 signature malleability in CC (thanks @TheComputerGenie)
  • Add cross-compilation for Linux aarch64 (armv8 64-bit)
  • Use p2pkh vout instead of p2pk for change when -pubkey is specified (for notary nodes)
  • Update Qt to 5.15.11
  • Use latest config.guess and config.sub in depends (thanks @TheComputerGenie)
  • Fix boost build warnings on modern compilers
  • Fix build on Ubuntu 24.04.1 (Noble Numbat)
  • Improve speed of loading guts / block index
  • Build: add support for Darwin arm64 (Apple Silicon chipset) for native and cross-compile builds
  • Allow starting without komodo.conf for KMD
  • Docker: add ability to build multi-platform images with buildx
  • Minor fixes and updates

DeckerSU and others added 30 commits August 23, 2024 18:20
…u.org

As of August 30, 2024, `git.savannah.gnu.org` returned a
502 error when trying to download `config.guess` and `config.sub`.
For example, attempting to download [this link](https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD)
returned a 502 error. As a result, all scripts, workflows, etc.,
that relied on getting fresh versions of `config.{sub,guess}`
from `git.savannah.gnu.org` are failing. To prevent this, we
disabled updating to the fresh versions of these scripts.
- KomodoPlatform/komodo#630
- https://soatok.blog/2024/08/14/security-issues-in-matrixs-olm-library/#vuln-ed25519

Actually, the current CC code doesn’t use Ed25519 signatures, so `CVE-2024-45193` has no impact on Komodo (KMD) or any existing assetchains. However, since CC could potentially use these types of signatures in the future (e.g., for newly developed CCs), we’ve added a `0 <= s < L` check to prevent signature malleability.
using a signed integer type (int) is preferable here,
to avoid potential issues with unsigned underflow.
cc: fix ed25519 signatures malleability
Build command example:
```
HOST=aarch64-linux-gnu ./zcutil/build-no-qt.sh -j8
```
this will help Iguana identify the change UTXOs and use them for splitting.
* GLEEC_OLD: exception to fix following the notarizations

* timeshifting transient verb

---------

Co-authored-by: smk762 <smk@komodoplatform.com>
Solve the error with `imp` Python module, which was used in Python 2
and older Python 3 versions, was removed in Python 3.12.
This module was typically used for import-related functionality,
which has since been replaced by importlib in recent Python versions.
- bitcoin/bitcoin#28769
- dashpay/dash#6032
- dashpay/dash#6011

Should fix crash on Ubuntu 24.04 / gcc 13.2.0:
```
*** buffer overflow detected ***: terminated

#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007ffff764526e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007ffff76288ff in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff76297b6 in __libc_message_impl (fmt=fmt@entry=0x7ffff77ce765 "*** %s ***: terminated\n")
    at ../sysdeps/posix/libc_fatal.c:132
#6  0x00007ffff7736c19 in __GI___fortify_fail (msg=msg@entry=0x7ffff77ce74c "buffer overflow detected")
    at ./debug/fortify_fail.c:24
#7  0x00007ffff77365d4 in __GI___chk_fail () at ./debug/chk_fail.c:28
#8  0x00007ffff7737a67 in __readlink_chk (path=<optimized out>, buf=<optimized out>, len=<optimized out>,
    buflen=<optimized out>) at ./debug/readlink_chk.c:31
#9  0x0000555556ef3bc3 in qt_readlink(char const*) ()
#10 0x0000555556e3e30b in QLockFilePrivate::processNameByPid(long long) ()
```
1. We should use the above statements after `AX_BOOST_BASE`, as it redefines `BOOST_CPPFLAGS`.
2. For Boost 1.72 we should use -D_HAS_AUTO_PTR_ETC=0, for newer versions
-DBOOST_NO_CXX98_FUNCTION_BASE.

- boostorg/container_hash@fd310d2
- boostorg/functional@6a573e4
bump Qt + fixes to be able to build and launch on Ubuntu 24.04 LTS Noble Numbat
Artifact actions v3 will be deprecated by December 5, 2024.
Been a few years since we last updated these.

- bitcoin/bitcoin#27508
- KomodoPlatform/komodo#636

Taking into account that the `x86_64-unknown-linux-gnu` triplet
has been changed to `x86_64-pc-linux-gnu` with the new files.
build: use latest config.{guess,sub} in depends
We also changed the interface update interval in the Loading block
index DB section, which improves the performance of element iteration.
- declare all synchronization primitives as local variables within LoadBlockIndexGutsFast()
- use a lambda for the worker function

it becomes easier to understand and maintain the code since all
related components are grouped together.
In the C++ standard library, the data structure std::queue
does not automatically release memory after removing all
elements because std::queue is based on a container that
retains allocated memory even when it becomes empty.

We made the fast guts load implementation optional with
the `-fastguts` flag. It offers nearly double the loading
speed but also doubles memory consumption.
optimize guts / indexes loading for faster startup
… mode and cross-compile (#86)

This commit enables users to build KomodoOcean for the `arm64-apple-darwin triplet` (Darwin `aarch64`). The build is supported for both cross-compilation and native compilation for Apple Silicon chips.

* prepare xcode, sdk_version to build for arm/aarch64 darwin
* prepare libevent, openssl, zeromq to build for arm darwin
* try to prepare rust, librustzcash to build for arm darwin
* prepare bdb to build for arm darwin
* add build-mac-arm-cross.sh for arm64/aarch64 darwin
* update LD64_VERSION and MacOS minimum runtime requirement
* try add build-mac-arm.sh for native aarch64 darwin build
* fix arm64 darwin native build
* update gen-sdk
* update SDK to Xcode 13.2.1 (13C100)
* build-mac-arm.sh: offer update Berkeley DB to 6.2.32
* update SDK on Xcode-13.2.1-13C100-extracted-SDK-with-libcxx-headers.tar.gz

The zcutil directory now includes the following additional build scripts:

- `build-mac.sh` - Native build for macOS x86_64. (If building on Apple Silicon, use arch -x86_64 zsh before starting the build to switch architecture / use Rosetta). Use this when building directly on a Mac.
- `build-mac-cross.sh` - Cross-compile on Linux for macOS x86_64. This will produce `Mach-O 64-bit x86_64 executable` binaries.
- `build-mac-arm.sh` - Native build for macOS aarch64. Use this on an Apple Silicon Mac to perform a native build and obtain `Mach-O 64-bit executable arm64` binaries.
- `build-mac-arm-cross.sh` - Cross-compile from Linux for macOS aarch64.
* introduce DEFAULT_TXINDEX (true)

as a part of constrain constant values to a single location in code

* fix error messages displayed on startup by the daemon

* allow to start without komodo.conf for KMD

No komodo.conf file is OK
Use:

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker login
docker buildx build --platform linux/amd64,linux/arm64 -t deckersu/komodoocean:latest --push .

for build and push the image.
Merge branch 'static-experimental' into static-dev
@DeckerSU DeckerSU merged commit e1f803e into static Nov 24, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant