Skip to content

Latest commit

 

History

History
126 lines (86 loc) · 5.97 KB

README.md

File metadata and controls

126 lines (86 loc) · 5.97 KB

BitQuest

BitQuest is a Minecraft mod that connects the game economics to a Bitcoin or other cryptocurrency nodes. It creates a Bitcoin wallet for every user that connects to the server, plus a common "loot" wallet used for rewards to players when killing mobs.

Players also can purchase land plots and stacks of items, transferring coins to the loot wallet, thus redistributing the spent cryptocurrency within the players.

You can use BitQuest to host your own Minecraft crypto server.

Official Servers

  • play.bitquest.co (Bitcoin)
  • doge.bitquest.co (Dogecoin)

Important Note

This project is an experiment and not a commercial product, bugs can, and most likely will happen. Please report any bugs to a moderator promptly, to ensure they are fixed. Also note that your wallet is not guaranteed, and you may experience issues with your balance. For this reason, it is highly recommended that you do not deposit large amounts, or anything you do not wish to place at risk by being tied to the server. In addition, if you are caught breaking rules and are banned, you forfeit your access to your server wallet, and all funds tied to it. With this said, rules are non-negotiable, and will be strictly enforced. This server is a fair server, and anyone abusing any system set in place will be punished. Please play fair, have fun, and enjoy the server

Play BitQuest

To play in the official BitQuest server you must own the official Minecraft game for PC/Mac/Linux and add this server address:

play.bitquest.co

How it works?

Everyone is a Bitcoin wallet

The BitQuest server and every player has a bitcoin address. Any player can receive and send bitcoin to any address inside or outside the game. This is useful for buying materials, selling crafts, trading, tipping, etcetera. A player just joined the server The playercan see it's bitcoin balance

And there's loot!

Every time a player kills an enemy (mob) there is a chance to get loot. If that is the case the server makes a transaction directly from the server address to the player address and the player is notified. A player got loot

Everyone can send money anywhere

You can send Bitcoin to an external wallet with /transfer:

/transfer <amount> <recipient-bitcoin-address>

Player using transfer command Player notification Player's public transaction

Additionally, players can send Bitcoin to other players via /send:

/send <amount> <username>

Server address

The BitQuest server has it's own address, used for giving Loot to players

About the back-end technology

All persistent data is saved in a redis database so the server can respond as quick as possible.

Everybody is welcome to contribute. :D

Here are the instructions to modify, install and run the server as localhost.

Building the BitQuest Java Plugin

1. Install Requirements

You must install Java JRE, JDK and Maven

1.1 Linux

sudo apt install -y openjdk-8-jre openjdk-8-jdk maven

1.2 Windows

  1. Install JDK
  2. Install Maven and set paths

2. Compile BitQuest and generate a JAR file

There is a maven project that will download the spigot 1.12.2 (downloading the latest version will be automated in future):

mvn package -B

Or using all of your cpu core (fastest) (If you have low ram your build can crash)

mvn package -B -T 1C

3. format the code to google java style

You can easly format the code by doing (you can exec this script from anywhere (you can do ../../../../../build.sh if you where on src/java/main/bitquest/bitquest/)):

./format.sh

Requirements for running

A Bitcoin Core testnet node running in your computer or local network with the json-rpc interface activated.

Running a BitQuest server with Docker

Tou can use Docker to run a BitQuest server. There's also an official BitQuest docker image. The recommended way to configure the image is using a docker-compose.yml file that can link to a directory where the worlds are stored. An example is included here. Configuration can be done via enviroment variables:

environment variable description
BITQUEST_NODE_USERNAME username for Bitcoin node
BITQUEST_NODE_PASSWORD password for Bitcoin node
BITQUEST_NODE_HOST IP to a bitcoin node with JSON-RPC interface enabled
BITQUEST_NODE_PORT Port of node
ADMIN_UUID Minecraft user ID for the main administrator
BITQUEST_ENV Set to 'production' to enable main net transactions.
BLOCKCYPHER_CHAIN btc/main for bitcoin mainnet. btc/test3 for bitcoin testnet
POSTGRES_ENV_POSTGRES_USER Username for connecting to the PostgreSQL database
POSTGRES_1_PORT_5432_TCP_ADDR Address of DB server
POSTGRES_1_PORT_5432_TCP_PORT Port for the DB server

Troubleshooting

I'm getting a JedisConnectionException error when starting

Please make sure you have redis installed. If you are running via docker please make sure you have a redis container linked to the bitquest container.

More info

https://bitquest.co/