Comments (7)
I can't really give a complete overview, but as far as getting the Engine running locally is concerned, the usage instructions from the Readme should be sufficient. Note that starting the EnoFlagSink before the EnoEngine will fail at the moment, this is a known bug tracked in #124
EnoLauncher waits for tasks to be added to the database by the EnoEngine and sends them to the checkers via HTTP and stores the results once it receives them. EnoFlagSink listens for flag submissions by the teams and adds them to the database. EnoEngine is responsible for creating the tasks for EnoLauncher at the beginning of each round as well as calculating the points at the end of each round, based on the submitted flags from EnoFlagSink and checker results from EnoLauncher.
EnoCore and EnoDatabase are just some common classes and the database project (I think).
EnoChecker is a checker library written in C#, although that does not really fit into this repository as it is not related to the Engine itself. https://github.com/enowars/enowars4-service-gamemaster might be a good reference on the usage. I assume DummyChecker and SampleChaker are somehow related to this.
FlagShooter was used in the past to stress test the flag submission endpoint, but I don't think this was used/maintained in quite some time.
Testsetup looks like it should probably be deleted, at least I don't think this is working.
@Trolldemorted and @Savallator should be able to correct me if I'm wrong somewhere and are probably able to create a more detailed Readme
from enoengine.
I have also added the most recent ctf.json from the last Bambi CTF, the older sample ctf.jsons might no longer work since we changed stuff in the ctf.json spec quite a lot
https://github.com/enowars/EnoEngine/blob/master/ctf.bambi5.json
from enoengine.
Flagshooter was working after Enowars 4 at least, i am quite confident it should work without needing to change much.
DummyChecker is a Checker that always returns ok, you can use that for performance testing. It is made to be super fast, so it does not use JSON Serialization but constant result strings.
In contrast, SampleChecker is kind of the same, but has the standard procedure a checker should use. This one might need some more polish to adhere to the recent changes.
Testchecker is gone now, that was old stuff.
In EnoCore is basically the Classes for JSON stuff, e.g. Scoreboard, Config, Checkertaskmessage, Logging.
EnoDatabase contains the models for the Postgres Database.
The Startup Instructions in the Readme should be up to date.
For dev, i would recommend either Visual Studio 2019 (recommended if debugging is needed, although a local setup is a bit more complicated, and you of course also need the Database then) or Visual Studio Code.
from enoengine.
👍 for more details in the README :-)
from enoengine.
Also, some information on how to run all of the projects would be appreciated.
E.g. in EnoChecker you are loading an assembly (where from?) and there is a multitude of errors: I had an old IDE
from enoengine.
EnoDatabase contains the models for the Postgres Database.
The db models are in EnoCore too, EnoDatabase contains all functions the other projects (Engine, Launcher, FlagShooter) need to interact with the postgres
from enoengine.
just a reminder for myself: https://mrin9.github.io/RapiDoc/examples/themes.html#post-/pet
from enoengine.
Related Issues (20)
- Throw error instead of exiting silently HOT 12
- Compare service name from ctf.json with the one the checker declares (and abort gracefully) HOT 5
- Maybe add a safe mode that is enabled by default
- Migration issue HOT 1
- document \0 filter in checker results? HOT 5
- Warn/abort in prod if team ips or service names are duplicate
- Switch to compile-time source generation based json (de)serialization
- Move checker-related stuff to its own repository HOT 5
- Add Rolling logs HOT 3
- Fix flagsPerRoundModifier > 1 creating additional flagstores in scoreboard
- Constrain log length (otherwise ELK dies) HOT 8
- flagsub prints stacktraces
- adhere to https://github.com/enowars/specification/blob/main/checker_protocol.md#message or change spec
- Notify user on Service-Name mismatch
- Adding teams and removing services causes CalculateTeamServicePoints to print exceptions
- readme section flagsubendpoint is outdated
- stats output for flagsink
- fix flagsub docu in readme HOT 1
- recalc-mode does not display progress/current round
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from enoengine.