• Stars
    star
    206
  • Rank 190,504 (Top 4 %)
  • Language
    Go
  • License
    MIT License
  • Created over 4 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

dgit adds decentralized ownership to git - powered by Tupelo DLT and Skynet

License Contributor Covenant


Logo

decentragit

decentragit is an open-source project built by Quorum Control which combines the power of
git, the Tupelo DLT and Skynet from Sia.
decentragit uses decentralized ownership and storage to make it trivial to create a decentralized, shareable git remote of your project.
decentragit accomplishes this without changing your GitHub workflow except that you can keep collaborating when it goes down.

Getting Started

With three simple steps you can create a decentralized mirror of your existing github project. All changes will be automatically propogated to the mirror version and the git services you depend on will be there when you need them.

Installation

A quick install using brew gets you started:

brew tap quorumcontrol/dgit && brew install dgit

Or if you don't have homebrew check out our simple manual installation instructions.

Usage

Next you will need to initialize each repo you want to make decentralized:

git dg init

This command does three things.

  1. decentragit sets the appropriate remote urls in your repo's .git/config file.
  2. decentragit creates a ChainTree which gets signed by the Tupelo DLT to specify ownership of the decentralized repo.
  3. decentragit stores that repo on Skynet, the decentralized storage solution from Sia.

From there you can proceed with normal git commands.

If you ever want to pull from the mirror you can specify the mirror with a "dg:".
As an example: git clone dg://your_username/repo_name

If you want to keep your decentralized, shareable git remote in sync with your GitHub repo adding a simple github action as illustrated in dgit-github-action is all it takes. Once completed your decentragit decentralized shareable remote will always be up to date and ready when you need it.

Publish to dg-pages

New Feature! DGit now allows you to publish your frontend files (html, css, js, .vue, .react) files to Skynet. Just checkout your files into a new branch named dg-pages, commit and push!

** NOTE: You need to have the Skynet CLI tool installed ** skynet-cli-repo

Collaborators

You can manage your repo's team of collaborators with the git dg team command:

  • git dg team add [collaborator usernames]
  • git dg team list
  • git dg team remove [usernames]

Anyone on the team will be allowed to push to the repo in the current directory.

Configuration

  • Username can be set any of the following ways:
    • DG_USERNAME=[username] env var
    • git config --global decentragit.username [username] sets it in ~/.gitconfig
    • git config decentragit.username [username] sets it in ./.git/config

FAQ

You can find answers to some of the most frequently asked questions on the wiki.

Built With

Building

  • Clone this repo.
  • Run make. Generates ./git-dg in top level dir.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

If you have any questions or concerns please hop into our developer chat on gitter and we will be glad to help.

Project Link: https://github.com/quorumcontrol/dgit

More Repositories

1

avalanche

a (currently toy) implementation of the various consensus algorithms discussed in the Avalanche paper.
Go
16
star
2

tupelo

Tupelo reference signer implementation
Go
14
star
3

tupelo-wasm-sdk

(ALPHA) A wasm-based TypeScript sdk that does not require the RPC server.
TypeScript
9
star
4

kasumah

TypeScript
7
star
5

tupelo-js-sdk

Tupelo JavaScript RPC bindings
JavaScript
6
star
6

dgit-github-action

A GitHub Action to push branches to dgit, primarily for syncing up after PRs.
Dockerfile
5
star
7

tupelo-lite

The simple immutable datastore based on digital signatures.
Go
4
star
8

decentracar

An example decentralized (flying) car sharing app
TypeScript
3
star
9

ipfs-deploy-github-action

GitHub action wrapper for ipfs-deploy
JavaScript
3
star
10

hippodrome

TypeScript
2
star
11

eth-kms

A small wrapper library allowing aws kms to act as an HSM for ethereum-based signatures
Go
2
star
12

wasm-explorer

A chaintree explorer
TypeScript
2
star
13

noiseplay

Go
2
star
14

chaintree

the data structure
Go
2
star
15

ambient-stack

DEMO Quality: a stack for accessing identity and decentralized storage.
TypeScript
1
star
16

decentratweet

TypeScript
1
star
17

jasons-game

the beginnings of jason's game.
Go
1
star
18

awesome-blockchain

Links, descriptions, tutorials on blockchain
1
star
19

ipfsplay

Go
1
star
20

namedlocker

A locker that produces namespaced RWSync mutexes.
Go
1
star
21

chair

playing with babylonjs
TypeScript
1
star
22

skale-boarder

An integrated system of contracts and SDKs to make onboarding users to schains easy as web2.
TypeScript
1
star
23

offliner

a quick demo to show offline capability
TypeScript
1
star
24

skale-relayer

TypeScript
1
star
25

larvamaiorum-monorepo

TypeScript
1
star
26

cryptocolosseum-contract-archive

Snapshots of the contracts deployed for the colosseum.
Solidity
1
star