This repository has been archived on 2023-03-02 . You can view files and clone it, but cannot push or open issues or pull requests.
				
			
		
		
		
			
				
					
						
					
					2d4d7759e07d2d702eaa3d70f3c07fdf390c9456
				
			
			
		
	KermaGo
Prerequisites
GNU Make and docker/Go installed on the machine
Config via environment variables
| Name | Description | Default value | 
|---|---|---|
KERMA_DEBUG | 
Run in debug mode | false | 
KERMA_IP_ADDR | 
Public IP Address to return to other nodes (if node behind port-forwarding) | 3.126.74.45 | 
KERMA_PORT | 
Port to listen on | 18018 | 
KERMA_CONN_TIMEOUT | 
Connection timeout | 10 | 
KERMA_INITIAL_PEER_LIST | 
Comma-separated string of initial peers to connect to | "" | 
KERMA_STORE_BASE_DIR | 
Base directory to store data. The docker container will mount this under ./data in the current directory | 
/var/local/badkerma | 
KERMA_PEER_LIST_STORE | 
Filename of the peer list | peers.json | 
KERMA_BLOCK_STORE | 
Filename of the blockchain | blocks.json | 
KERMA_TRANSACTION_STORE | 
Filename of the transactions | transactions.json | 
KERMA_PRIVATE_KEY_FILE | 
Filename of the private key file | private.pem | 
You can create a .env file and docker will read the variables from there.
NOTE: You need to set KERMA_INITIAL_PEER_LIST to a valid node address when running the node for the first time or after you have cleaned the persistent store. Thereafter, the node gossips a known node list and keeps it up-to-date.
Run it locally
make run
Compile it locally
make build
Test it locally
make test
You can also test with netcat. Start the program and run:
cat test.txt | nc localhost 18018 -p 50001
Run in debug mode locally
make debug
Build the docker image
DOCKER_REGISTRY=localhost make docker-build
Run docker container in debug mode
DOCKER_REGISTRY=localhost make docker-debug
Run docker container in background
DOCKER_REGISTRY=localhost make docker-run
Stop running docker container
make docker-stop
Description
				
					Languages
				
				
								
								
									Go
								
								98.4%
							
						
							
								
								
									Makefile
								
								1%
							
						
							
								
								
									Shell
								
								0.4%
							
						
							
								
								
									Dockerfile
								
								0.2%