Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/auxten/ginkgo
Golang version gingko p2p
https://github.com/auxten/ginkgo
Last synced: about 1 month ago
JSON representation
Golang version gingko p2p
- Host: GitHub
- URL: https://github.com/auxten/ginkgo
- Owner: auxten
- License: apache-2.0
- Created: 2016-07-09T15:29:58.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2022-01-30T17:28:33.000Z (almost 3 years ago)
- Last Synced: 2024-06-21T20:05:30.248Z (5 months ago)
- Language: Go
- Size: 61.5 KB
- Stars: 9
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gink-go
Ginkgo is a p2sp file transfer tool designed for ML dataset.## Build
```bash
go build cmd/ginkgo.go
```## Usage
On server side, just start server with the following command:
```bash
ginkgo
```On client side, just run ginkgo as a scp command, both directory and file are supported.
```bash
ginkgo SrcHost:/path/to/src /path/to/dest
```- The `/path/to/src` can be either absolute or relative.
- The src and dest path handling behavior is just compatible with GNU scp command## How
- Client will get other clients list from server side and broadcast itself to them.
- Client chooses the block to download according to consistent hashing result of its serving `host:port`.
- Other clients also choose which peer to download the block from by the hash.
- The seed.Seed structure records the blocks and files metadata.Golang version of [gingko](https://github.com/auxten/gingko)
> `ginkgo` is an alternative form of `gingko`. `Gink-go` is the golang version `Gingko`.
## Todo
- [x] HTTP range downloader
- [x] HTTP file server
- [x] Directory support
- [x] Consistent hashing locator
- [ ] Client rate limit
- [ ] Server rate limit