CCash/README.md
2021-04-08 20:04:31 -07:00

2.5 KiB

CCash-2.0 [INCOMPLETE]

A complete simplification and improvement to the CCash project. A webserver hosting a bank system for Minecraft, able to be used from web browser or from CC/OC if you're playing modded.

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
  • OpenSSL (HTTPS)

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

  • a Market
  • Gambling
  • Shipping
  • a Leaderboard ranking player's balances
  • 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