No description
Find a file
2021-04-11 12:24:38 -07:00
include 🐛 long val was being cast to unsigned instead of signed 2021-04-09 19:57:19 -07:00
third_party added drogon 2021-04-02 01:28:19 -07:00
.gitignore updated .gitignore 2021-04-01 18:58:55 -07:00
.gitmodules added drogon 2021-04-02 01:28:19 -07:00
CMakeLists.txt got web framework working 2021-04-04 21:04:05 -07:00
main.cpp enabled run as daemon and updated README 2021-04-11 12:24:38 -07:00
README.md enabled run as daemon and updated README 2021-04-11 12:24:38 -07:00

CCash

A webserver hosting a bank system for Minecraft

Description

the currency model most Minecraft Servers adopt if any, is resource based, usually diamonds, this model is fraught with issues however:

  • the primary issue is minecraft worlds are infinite leading to hyper inflation as everyone accrues more diamonds
  • there is no central authority minting the currency, any consumer can introduce more diamonds to the system
  • some resources are passively reapable, making the generation of currency a larger focus then of products
  • locality is required for transaction
  • theft is possible, ownership is possession based

CCash solves these issues and adds a level of abstraction, the main philosophy of CCash is to have fast core operations that other services build on

Build

git clone --recurse-submodule https://github.com/EntireTwix/CCash-2.0/
mkdir build
cd build
cmake ..
make -j<threads>
sudo ./bank <admin password> <saving frequency in minutes> <threads>

Dependencies

Features

Performance

  • NOT written in Lua
  • written in C++, arguably the fastest language
  • multi-threaded
  • parallel hashmaps a far superior HashMap implementation to the STD, that also benefit from multi-threaded

Safety

  • Tamper Proof relative to an in-game implementation
  • Auto-Saving, Saves on crash, Saves on close

Accessibility

  • Web front-end
  • RESTful API for connected services like a market, gambling, or anything else you can think of
  • able to be used millions of blocks away, across dimensions, servers, vanilla or modded. In contrast to an in-game modded implementation that would be range limited.

Connected Services

Go to {ip}/BankF/help to see the bank's methods. Using the Bank's API allows (you/others) to (make/use) connected services that utilize the bank, a couple ideas are

Implemented:

In-Dev:

  • a Market
  • a Leaderboard ranking player's balances

Ideas:

  • Gambling
  • Shipping
  • High-level bank operations such as loans
  • Some trust based system for transactions similiar to Paypal

**WARNING** : abruptly killing the program will result in data loss, use Close() method to close safely