package com.msgilligan.bitcoinj.proxy;
import com.msgilligan.bitcoinj.rpc.RPCConfig;
import ratpack.guice.Guice;
import ratpack.server.BaseDir;
import ratpack.server.RatpackServer;
import ratpack.server.ServerConfig;
/**
* Main class for a Bitcoin RPC reverse proxy server
*/
public class ProxyMain {
public static void main(String... args) throws Exception {
ServerConfig serverConfig = ServerConfig.of(config -> config
.port(5050)
.baseDir(BaseDir.find())
.json("proxy-config.json")
.require("/rpcclient", RPCConfig.class)
);
RatpackServer.start (server -> server
.serverConfig(serverConfig)
.registry(Guice.registry(b -> b.
moduleConfig(BitcoinRpcProxyModule.class,
serverConfig.get("/rpcclient", RPCConfig.class))))
.handlers(chain -> chain
.post("rpc", RpcProxyHandler.class)
.get("status", ChainStatusHandler.class)
.get("gen", GenerateHandler.class)
.get(ctx -> ctx.getResponse().send("Hello world! (Not RPC)"))
)
);
}
}