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

chore: rework project structure #255

Merged
merged 90 commits into from
May 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
5019fbf
DDD
JeremyPansier Nov 14, 2023
7758fa1
fix packaging and scan
JeremyPansier Nov 14, 2023
7f0c952
fix packaging
JeremyPansier Nov 14, 2023
72514aa
fix packaging
JeremyPansier Nov 14, 2023
8e9023e
refactoring and update doc
JeremyPansier Mar 14, 2024
3f4cae5
rename some interfaces
JeremyPansier Mar 15, 2024
a23285f
remove mocks from coverage analysis
JeremyPansier Mar 15, 2024
ea1d97e
rename more interfaces
JeremyPansier Mar 15, 2024
07bd0b4
rename more interfaces
JeremyPansier Mar 15, 2024
3a8acf5
change incomed by yielding
JeremyPansier Mar 22, 2024
b85bab6
fix a security hotspot
JeremyPansier Mar 22, 2024
89990eb
fix test
JeremyPansier Mar 22, 2024
84ddc9f
test wrong hash
JeremyPansier Mar 22, 2024
cce99b5
fix hash
JeremyPansier Mar 22, 2024
2aa4b61
add hashes
JeremyPansier Mar 22, 2024
042976e
run image as non-root user
JeremyPansier Mar 22, 2024
508b6f2
exclude mocks from analysis
JeremyPansier Mar 22, 2024
e69a81e
remove non-root user
JeremyPansier Mar 22, 2024
7f0b11d
add non-root user
JeremyPansier Mar 22, 2024
eb26af3
introduce utxo manager
JeremyPansier Mar 22, 2024
da832bc
refactoring for utxo manager
JeremyPansier Mar 25, 2024
0e9e097
fix tests
JeremyPansier Mar 25, 2024
fd4cf5c
solve some TODOs
JeremyPansier Mar 25, 2024
6a5d81d
fix registered addresses update
JeremyPansier Mar 27, 2024
7c69a42
rework main
JeremyPansier Mar 29, 2024
05c1e42
gitignore
JeremyPansier Mar 29, 2024
52756be
revert gitignore
JeremyPansier Mar 29, 2024
6c705fc
fix non consolidation
JeremyPansier Mar 29, 2024
727c8ff
extract registered addresses
JeremyPansier Mar 29, 2024
4487676
fix managers clearing and utxo indexing
JeremyPansier Mar 31, 2024
309af3e
fix tests
JeremyPansier Mar 31, 2024
95d2cce
fix tests
JeremyPansier Mar 31, 2024
ee48a52
rework structure
JeremyPansier Apr 1, 2024
d4e95a7
rename observer node to access node and remove common
JeremyPansier Apr 2, 2024
c9a55a0
change template path
JeremyPansier Apr 3, 2024
2e96faa
rework registry and gp2p
JeremyPansier Apr 3, 2024
6467daa
rework
JeremyPansier Apr 3, 2024
f899e12
rework access node
JeremyPansier Apr 4, 2024
6d7f268
rename packages
JeremyPansier Apr 5, 2024
ee3fccd
remove transaction to utxo manager dependency
JeremyPansier Apr 6, 2024
dbc51e7
remove interfaces for domain and move fee calculation to utxos manager
JeremyPansier Apr 9, 2024
f9c8853
move neighbor related types
JeremyPansier Apr 12, 2024
84d34bd
merge client and neighbor
JeremyPansier Apr 12, 2024
5375ca7
rename file
JeremyPansier Apr 12, 2024
0508f20
refactor validator api
JeremyPansier Apr 16, 2024
6b30f0b
refactor access node api
JeremyPansier Apr 16, 2024
7c156b7
refactor response writer
JeremyPansier Apr 16, 2024
a3f1e51
refactor access node settings
JeremyPansier Apr 16, 2024
6f9b1ed
move template.html
JeremyPansier Apr 16, 2024
30466a6
add tests
JeremyPansier Apr 19, 2024
6081368
change settings structure
JeremyPansier Apr 19, 2024
9a2ee75
fix port type
JeremyPansier Apr 19, 2024
21d71d6
fix rooter
JeremyPansier Apr 19, 2024
75ccaa4
remove test settings
JeremyPansier Apr 19, 2024
1a3870c
update settings
JeremyPansier Apr 19, 2024
33d475e
refactor settings
JeremyPansier Apr 26, 2024
9159ed6
fix tests
JeremyPansier Apr 26, 2024
5ab5986
remove config folder
JeremyPansier Apr 26, 2024
3b8e8c0
test gitignore
JeremyPansier Apr 26, 2024
18e92d8
update gitignore
JeremyPansier Apr 26, 2024
9b4a0f1
test gitignore
JeremyPansier Apr 26, 2024
f1efedd
update gitignore
JeremyPansier Apr 26, 2024
7bc59b2
document validator node settings
JeremyPansier Apr 26, 2024
6c9f3ec
refactor and document access node settings
JeremyPansier Apr 26, 2024
3993a3f
improve utxos registry test
JeremyPansier Apr 26, 2024
dc13290
update gitignore
JeremyPansier Apr 26, 2024
16770d4
add utxos registry tests
JeremyPansier May 3, 2024
067267f
add blockchain tests
JeremyPansier May 4, 2024
de69e8f
add utxos registry test
JeremyPansier May 4, 2024
429b2d7
add addresses registry test
JeremyPansier May 16, 2024
18f9378
Merge remote-tracking branch 'refs/remotes/origin/main' into 243-refa…
JeremyPansier May 16, 2024
54c42ed
merge from main
JeremyPansier May 16, 2024
30a71ec
fix addresses registry
JeremyPansier May 17, 2024
00abf0d
try settings coverage exclusion
JeremyPansier May 17, 2024
4ec6eba
add node test
JeremyPansier May 17, 2024
8a91a05
exclude settings from coverage
JeremyPansier May 17, 2024
28a75bb
remove unexpected extra semicolon
JeremyPansier May 17, 2024
08b5cb6
fix statefulset.yaml
JeremyPansier May 17, 2024
1433cbd
Revert "fix statefulset.yaml"
JeremyPansier May 17, 2024
6806119
fix statefulset.yaml
JeremyPansier May 17, 2024
deb4e95
fix statefulset.yaml (hard code values)
JeremyPansier May 17, 2024
7a4cd52
fix Dockerfile
JeremyPansier May 17, 2024
07babe6
update readme
JeremyPansier May 17, 2024
5d86780
fix warning
JeremyPansier May 17, 2024
f34e64e
update PR template
JeremyPansier May 17, 2024
2e1bba0
Revert "fix statefulset.yaml (hard code values)"
JeremyPansier May 17, 2024
4515b2a
add values
JeremyPansier May 17, 2024
c27bc5b
fix statefulset.yaml
JeremyPansier May 17, 2024
0cd299e
add values
JeremyPansier May 17, 2024
788f92c
fix size unit
JeremyPansier May 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
- [ ] The code follows our code [conventions](https://github.com/my-cloud/ruthenium/blob/main/.github/CONTRIBUTING.md#go).
- [ ] Important principle changes have been documented in the [wiki](https://github.com/my-cloud/ruthenium/wiki).
- [ ] The new code is covered by unit tests with assertions.
- [ ] The behaviour [node](https://github.com/my-cloud/ruthenium/blob/main/src/node) and [UI](https://github.com/my-cloud/ruthenium/blob/main/src/ui) have been manually tested and is as expected.
- [ ] The behaviour [validator node](https://github.com/my-cloud/ruthenium/blob/main/validatornode) and [access node](https://github.com/my-cloud/ruthenium/blob/main/accessnode) have been manually tested and is as expected.
- [ ] The squash commit message follows our [conventions](https://github.com/my-cloud/ruthenium/blob/main/.github/CONTRIBUTING.md#git).
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
##IDEs
#JetBrain Goland
#JetBrains
.idea/**
#Microsoft VSCode
.vscode/**
#Microsoft VS
.vs/**

##Build
*.exe

##Settings
*/settings?.json
19 changes: 9 additions & 10 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
FROM golang:1.19 as builder
FROM golang:1.19 AS builder
WORKDIR /app
COPY ./src ./src
COPY ./config ./config
COPY ./validatornode ./validatornode
COPY ./accessnode ./accessnode
ADD go.mod .
ADD go.sum .

RUN CGO_ENABLED=0 go build -o node src/node/main.go
RUN CGO_ENABLED=0 go build -o ui src/ui/main.go
RUN CGO_ENABLED=0 go build -o validatornode validatornode/main.go
RUN CGO_ENABLED=0 go build -o accessnode accessnode/main.go

FROM gcr.io/distroless/static-debian11
FROM debian:11.9
USER nonroot
WORKDIR /app
COPY ./templates /app/templates
COPY --from=builder /app/config /app/config
COPY --from=builder /app/node /app
COPY --from=builder /app/ui /app
COPY --from=builder /app/validatornode /app
COPY --from=builder /app/accessnode /app
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ There are two ways to run a Ruthenium node. You can either use your own build fr
* If you are using Windows, you need to have [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) installed.
* Option B (using docker image):
* You need to have [![Docker](https://img.shields.io/badge/docker-grey?logo=docker)](https://www.docker.com/) installed.
* Your firewall port 10600 must be open (please read "Program arguments" section of the [node](src/node/README.md#program-arguments) and [UI server](src/ui/README.md#program-arguments) documentation if you want to use another port than 10600).
* Your firewall port 10600 must be open (please read "Program arguments" section of the [validator node](validatornode/README.md#program-arguments) and [access node](accessnode/README.md#program-arguments) documentation if you want to use another port than 10600).
* To get an income or validate blocks ou need to be registered in the [Proof of Humanity](https://github.com/my-cloud/ruthenium/wiki/Whitepaper#proof-of-humanity) registry.

### Installation
Expand All @@ -39,29 +39,29 @@ There are two ways to run a Ruthenium node. You can either use your own build fr
### Launch
* Option A (using sources):
* Extract files from the sources archive
* At root level (ruthenium folder), run the [node](src/node/README.md):
* At root level (ruthenium folder), run the [validator node](validatornode/README.md):
```
go run src/node/main.go -private-key=<private key>
go run validatornode/main.go
```
* At root level (ruthenium folder), run the [UI server](src/ui/README.md):
* At root level (ruthenium folder), run the [access node](accessnode/README.md):
```
go run src/ui/main.go -host-ip=<your external IP address>
go run accessnode/main.go
```
* Option B (using docker image):
* Run the [node](src/node/README.md):
* Run the [validator node](validatornode/README.md):
```
sudo docker run -p 10600:10600 -ti ghcr.io/my-cloud/ruthenium:latest \app\node -private-key=<private key>
sudo docker run -p 10600:10600 -ti ghcr.io/my-cloud/ruthenium:latest \app\validatornode
```
* Run the [UI server](src/ui/README.md):
* Run the [access node](accessnode/README.md):
```
sudo docker run -p 8080:8080 -ti ghcr.io/my-cloud/ruthenium:latest \app\ui -host-ip=<your external IP address>
sudo docker run -p 8080:8080 -ti ghcr.io/my-cloud/ruthenium:latest \app\accessnode
```
* Using a web browser, go to:
* http://localhost:8080

## APIs
* [host node API](src/node/README.md#api)
* [UI server API](src/ui/README.md#api)
* [validator node API](validatornode/README.md#api)
* [access node API](accessnode/README.md#api)

## Contributing
[![Forks](https://img.shields.io/github/forks/my-cloud/ruthenium?logo=github)](https://github.com/my-cloud/ruthenium/fork)
Expand Down