degitx

package module
v0.0.0-...-97b9ebb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2022 License: MIT Imports: 0 Imported by: 0

README

CI Build white paper document Lines of code Telegram chat

DeGitX - distributed git repository manager, see explanation in the white paper or join Telegram chat to discuss: @cqfn_degit.

Build

Run make to build binaries, they are located at ./target dir.

Install

Download proper binary asset from releases page: https://github.com/cqfn/degitx/releases (e.g. degit_(version)_Linux_x86_64.tar.gz for Linux64 machine). To verify build signature, download checksums.txt, checksums.txt.sig and import GPG by id 84292276B8D114FD450F84C0421ED823A1B750E3 from one of the keyservers, e.g.

gpg --keyserver pgp.mit.edu --recv-keys 84292276B8D114FD450F84C0421ED823A1B750E3

GPG public key from degit-key.pub repository root, then import GPG key into your GPG keychain. After GPG import, verify checksums signature files (downloaded from release assets) using command

gpg --verify checksums.txt.sig

If everithing is OK, verify SHA256 hash of binary asset downloaded (ignore errors for other platform assets):

sha256sum -c checksums.txt

If checksum is OK, extract binary from the archive:

tar -xvzf degit_(version)_(platform).tar.gz

Node Configuration

yaml is the only node configuration format and consist of:

  • version - config format version
  • keys - node crypto keys:
    • alg - key algorithm
    • private - private key location
    • public - public key location

All fields are required.

Contributing

This page will help you with contributing workflow: https://github.com/cqfn/degitx/blob/master/CONTRIBUTING.md

To build the project use make command:

  • make - install all dependencies, generate proto files, run tests and build node
  • make install-deps - install required dependencies
  • make proto - generate protobuf source code
  • make build - build core package
  • make test - run tests
  • make degitx - build node binary
  • make degitx-gitaly - build front-end binary
  • make lint - run linters. golangci-lint required to be installed in advance.
  • make verify - build, test, lint, degitx and degitx-gitaly

Documentation

Overview

Package degitx is a stub package to run go build. It doesn't work if package contains no go files.

Directories

Path Synopsis
cmd
internal
config
Package config contains config parser code that is shared between front- and back-end parts.
Package config contains config parser code that is shared between front- and back-end parts.
front-end
Package frontend provides a gitaly-like front-end server start point and contains all all front-end specific code
Package frontend provides a gitaly-like front-end server start point and contains all all front-end specific code
front-end/gitaly/server
Package server provide interface to start and stop server that contains all gRPC service servers that are borrowed from gitaly.
Package server provide interface to start and stop server that contains all gRPC service servers that are borrowed from gitaly.
front-end/gitaly/service/blob
Package blob contains server for gRPC Blob service
Package blob contains server for gRPC Blob service
front-end/gitaly/service/cleanup
Package cleanup contains server for gRPC Cleanup service
Package cleanup contains server for gRPC Cleanup service
front-end/gitaly/service/commit
Package commit contains server for gRPC Commit service
Package commit contains server for gRPC Commit service
front-end/gitaly/service/conflicts
Package conflicts contains server for gRPC Conflicts service
Package conflicts contains server for gRPC Conflicts service
front-end/gitaly/service/diff
Package diff contains server for gRPC Diff service
Package diff contains server for gRPC Diff service
front-end/gitaly/service/namespace
Package namespace contains server for gRPC Namespace service
Package namespace contains server for gRPC Namespace service
front-end/gitaly/service/objectpool
Package objectpool contains server for gRPC ObjectPool service
Package objectpool contains server for gRPC ObjectPool service
front-end/gitaly/service/operations
Package operations contains server for gRPC Operation service
Package operations contains server for gRPC Operation service
front-end/gitaly/service/ref
Package ref contains server for gRPC Ref service
Package ref contains server for gRPC Ref service
front-end/gitaly/service/remote
Package remote contains server for gRPC Remote service
Package remote contains server for gRPC Remote service
front-end/gitaly/service/repository
Package repository contains server for gRPC Repository service
Package repository contains server for gRPC Repository service
front-end/gitaly/service/server
Package server contains server for gRPC server service
Package server contains server for gRPC server service
front-end/gitaly/service/smarthttp
Package smarthttp contains server for gRPC SmartHTTP service
Package smarthttp contains server for gRPC SmartHTTP service
front-end/gitaly/service/ssh
Package ssh contains server for gRPC SSH service
Package ssh contains server for gRPC SSH service
front-end/gitaly/service/storage
Package storage contains server for gRPC Storage service
Package storage contains server for gRPC Storage service
front-end/gitaly/service/wiki
Package wiki contains server for gRPC Wiki service
Package wiki contains server for gRPC Wiki service
front-end/healthcheckstub
Package healthcheckstub emulates healthcheck to allow gitlab to start with degitx that has unimplemented methods.
Package healthcheckstub emulates healthcheck to allow gitlab to start with degitx that has unimplemented methods.
logging
Package logging contains degitx logging API, mapping and configuring internal implementation.
Package logging contains degitx logging API, mapping and configuring internal implementation.
meta
Package meta provides interfaces and implementations to work with metadata protocol of DeGitX, metadata structure is an abstract key-value storage.
Package meta provides interfaces and implementations to work with metadata protocol of DeGitX, metadata structure is an abstract key-value storage.
misc
Package misc provides useful common functions that can be moved to separated projects later
Package misc provides useful common functions that can be moved to separated projects later
transaction
Package transaction provides API interfaces and implementations of atomic transaction for DeGitX. The workflow and research are explained in the white-paper.
Package transaction provides API interfaces and implementations of atomic transaction for DeGitX. The workflow and research are explained in the white-paper.
version
Package version provide information about degitx build
Package version provide information about degitx build
pkg
discovery
Package discovery provides discovery protocol interfaces and its implementations.
Package discovery provides discovery protocol interfaces and its implementations.
locators
Package locators represents node identities, it's hash function representing in Multihash format: https://multiformats.io/multihash/
Package locators represents node identities, it's hash function representing in Multihash format: https://multiformats.io/multihash/
paxos
Package paxos is a Paxos-simple protocol implementation for Go.
Package paxos is a Paxos-simple protocol implementation for Go.
tcommit
Package tcommit provides API interfaces and base primitives for transacrion commit protocol.
Package tcommit provides API interfaces and base primitives for transacrion commit protocol.
tcommit/grpc
Package grpc implements transaction protocols using gRPC
Package grpc implements transaction protocols using gRPC
twopc
Package twopc implements transaction commit using 2-phase commit protocol
Package twopc implements transaction commit using 2-phase commit protocol

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL