fixed logging

This commit is contained in:
Jakub Matys 2018-04-12 15:23:16 +02:00
parent 6c1e114074
commit a37ccdaee0
19 changed files with 48 additions and 79 deletions

View File

@ -79,12 +79,14 @@ var (
chanOsSignal chan os.Signal chanOsSignal chan os.Signal
) )
func init() {
glog.MaxSize = 1024 * 1024
glog.CopyStandardLogTo("INFO")
}
func main() { func main() {
flag.Parse() flag.Parse()
// override setting for glog to log only to stderr, to match the http handler
flag.Lookup("logtostderr").Value.Set("true")
defer glog.Flush() defer glog.Flush()
chanOsSignal = make(chan os.Signal, 1) chanOsSignal = make(chan os.Signal, 1)

View File

@ -5,7 +5,7 @@ FROM debian:9
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y build-essential git wget pkg-config lxc-dev libzmq3-dev \ apt-get install -y build-essential git wget pkg-config lxc-dev libzmq3-dev \
libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev \ libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev \
liblz4-dev graphviz upx-ucl && \ liblz4-dev graphviz && \
apt-get clean apt-get clean
ENV GOLANG_VERSION=go1.10.linux-amd64 ENV GOLANG_VERSION=go1.10.linux-amd64

View File

@ -1,6 +1,5 @@
build: prepare-sources build: prepare-sources
cd $(GOPATH)/src/blockbook && go build -o $(CURDIR)/blockbook -ldflags="-s -w" cd $(GOPATH)/src/blockbook && go build -o $(CURDIR)/blockbook -ldflags="-s -w"
upx $(CURDIR)/blockbook
cp $(CURDIR)/blockbook /out/blockbook cp $(CURDIR)/blockbook /out/blockbook
chown $(PACKAGER) /out/blockbook chown $(PACKAGER) /out/blockbook

View File

@ -3,7 +3,7 @@ set -e
cp -r /src/build/deb/debian . cp -r /src/build/deb/debian .
cp -r /src/configs . cp -r /src/configs .
mkdir server && cp /src/server/testcert.* server mkdir server && cp -r /src/server/testcert.* /src/server/static server
dpkg-buildpackage -us -uc dpkg-buildpackage -us -uc
mv ../*.deb /out mv ../*.deb /out

View File

@ -1,4 +1,5 @@
#!/usr/bin/dh-exec #!/usr/bin/dh-exec
blockbook /opt/blockbook/btc-testnet/bin blockbook /opt/blockbook/btc-testnet/bin
server/testcert.* /opt/blockbook/btc-testnet/cert server/testcert.* /opt/blockbook/btc-testnet/cert
server/static /opt/blockbook/btc-testnet
configs/btc-testnet.json => /opt/blockbook/btc-testnet/config/blockchaincfg.json configs/btc-testnet.json => /opt/blockbook/btc-testnet/config/blockchaincfg.json

View File

@ -1,9 +0,0 @@
/opt/blockbook/btc-testnet/logs/blockbook.log
{
rotate 7
daily
compress
missingok
notifempty
copytruncate
}

View File

@ -9,10 +9,13 @@ case "$1" in
useradd --system -M -U blockbook useradd --system -M -U blockbook
fi fi
if [ "$(stat -c '%U' /data/btc-testnet/blockbook)" != "blockbook" ] for dir in /data/btc-testnet/blockbook /opt/blockbook/btc-testnet/logs
then do
chown -R blockbook:blockbook /data/btc-testnet/blockbook if [ "$(stat -c '%U' $dir)" != "blockbook" ]
fi then
chown -R blockbook:blockbook $dir
fi
done
;; ;;
esac esac

View File

@ -9,15 +9,11 @@ Description=Blockbook daemon (BTC testnet)
After=network.target After=network.target
[Service] [Service]
ExecStart=/opt/blockbook/btc-testnet/bin/blockbook -coin=btc-testnet -blockchaincfg=/opt/blockbook/btc-testnet/config/blockchaincfg.json -datadir=/data/btc-testnet/blockbook/db -sync -httpserver=:18335 -socketio=:18336 -certfile=/opt/blockbook/btc-testnet/cert/blockbook -explorer=https://bitcore1.trezor.io/ ExecStart=/opt/blockbook/btc-testnet/bin/blockbook -coin=btc-testnet -blockchaincfg=/opt/blockbook/btc-testnet/config/blockchaincfg.json -datadir=/data/btc-testnet/blockbook/db -sync -httpserver=:18335 -socketio=:18336 -certfile=/opt/blockbook/btc-testnet/cert/blockbook -explorer=https://bitcore1.trezor.io/ -log_dir=/opt/blockbook/btc-testnet/logs
# Creates /run/blockbook owned by blockbook
RuntimeDirectory=blockbook
User=blockbook User=blockbook
# Type=forking Type=simple
# PIDFile=/run/bitcoind/btc-testnet.pid
Restart=on-failure Restart=on-failure
StandardOutput=file:/opt/blockbook/btc-testnet/logs/blockbook.log WorkingDirectory=/opt/blockbook/btc-testnet
StandardError=file:/opt/blockbook/btc-testnet/logs/blockbook.log
# Hardening measures # Hardening measures
#################### ####################

View File

@ -1,4 +1,5 @@
#!/usr/bin/dh-exec #!/usr/bin/dh-exec
blockbook /opt/blockbook/btc/bin blockbook /opt/blockbook/btc/bin
server/testcert.* /opt/blockbook/btc/cert server/testcert.* /opt/blockbook/btc/cert
server/static /opt/blockbook/btc
configs/btc.json => /opt/blockbook/btc/config/blockchaincfg.json configs/btc.json => /opt/blockbook/btc/config/blockchaincfg.json

View File

@ -1,9 +0,0 @@
/opt/blockbook/btc/logs/blockbook.log
{
rotate 7
daily
compress
missingok
notifempty
copytruncate
}

View File

@ -9,10 +9,13 @@ case "$1" in
useradd --system -M -U blockbook useradd --system -M -U blockbook
fi fi
if [ "$(stat -c '%U' /data/btc/blockbook)" != "blockbook" ] for dir in /data/btc/blockbook /opt/blockbook/btc/logs
then do
chown -R blockbook:blockbook /data/btc/blockbook if [ "$(stat -c '%U' $dir)" != "blockbook" ]
fi then
chown -R blockbook:blockbook $dir
fi
done
;; ;;
esac esac

View File

@ -9,15 +9,11 @@ Description=Blockbook daemon (BTC mainnet)
After=network.target After=network.target
[Service] [Service]
ExecStart=/opt/blockbook/btc/bin/blockbook -coin=btc -blockchaincfg=/opt/blockbook/btc/config/blockchaincfg.json -datadir=/data/btc/blockbook/db -sync -httpserver=:8335 -socketio=:8336 -certfile=/opt/blockbook/btc/cert/blockbook -explorer=https://bitcore1.trezor.io/ ExecStart=/opt/blockbook/btc/bin/blockbook -coin=btc -blockchaincfg=/opt/blockbook/btc/config/blockchaincfg.json -datadir=/data/btc/blockbook/db -sync -httpserver=:8335 -socketio=:8336 -certfile=/opt/blockbook/btc/cert/blockbook -explorer=https://bitcore1.trezor.io/ -log_dir=/opt/blockbook/btc/logs
# Creates /run/blockbook owned by blockbook
RuntimeDirectory=blockbook
User=blockbook User=blockbook
# Type=forking Type=simple
# PIDFile=/run/bitcoind/btc.pid
Restart=on-failure Restart=on-failure
StandardOutput=file:/opt/blockbook/btc/logs/blockbook.log WorkingDirectory=/opt/blockbook/btc
StandardError=file:/opt/blockbook/btc/logs/blockbook.log
# Hardening measures # Hardening measures
#################### ####################

View File

@ -1,4 +1,5 @@
#!/usr/bin/dh-exec --with=install #!/usr/bin/dh-exec --with=install
blockbook /opt/blockbook/zec/bin blockbook /opt/blockbook/zec/bin
server/testcert.* /opt/blockbook/zec/cert server/testcert.* /opt/blockbook/zec/cert
server/static /opt/blockbook/zec
configs/zec.json => /opt/blockbook/zec/config/blockchaincfg.json configs/zec.json => /opt/blockbook/zec/config/blockchaincfg.json

View File

@ -1,9 +0,0 @@
/opt/blockbook/zec/logs/blockbook.log
{
rotate 7
daily
compress
missingok
notifempty
copytruncate
}

View File

@ -9,10 +9,13 @@ case "$1" in
useradd --system -M -U blockbook useradd --system -M -U blockbook
fi fi
if [ "$(stat -c '%U' /data/zec/blockbook)" != "blockbook" ] for dir in /data/zec/blockbook /opt/blockbook/zec/logs
then do
chown -R blockbook:blockbook /data/zec/blockbook if [ "$(stat -c '%U' $dir)" != "blockbook" ]
fi then
chown -R blockbook:blockbook $dir
fi
done
;; ;;
esac esac

View File

@ -9,15 +9,11 @@ Description=Blockbook daemon (ZEC mainnet)
After=network.target After=network.target
[Service] [Service]
ExecStart=/opt/blockbook/zec/bin/blockbook -coin=zec -blockchaincfg=/opt/blockbook/zec/config/blockchaincfg.json -datadir=/data/zec/blockbook/db -sync -httpserver=:8235 -socketio=:8236 -certfile=/opt/blockbook/zec/cert/blockbook -explorer=https://zec-bitcore1.trezor.io/ ExecStart=/opt/blockbook/zec/bin/blockbook -coin=zec -blockchaincfg=/opt/blockbook/zec/config/blockchaincfg.json -datadir=/data/zec/blockbook/db -sync -httpserver=:8235 -socketio=:8236 -certfile=/opt/blockbook/zec/cert/blockbook -explorer=https://zec-bitcore1.trezor.io/ -log_dir=/opt/blockbook/zec/logs
# Creates /run/blockbook owned by blockbook
RuntimeDirectory=blockbook
User=blockbook User=blockbook
# Type=forking Type=simple
# PIDFile=/run/bitcoind/zec.pid
Restart=on-failure Restart=on-failure
StandardOutput=file:/opt/blockbook/zec/logs/blockbook.log WorkingDirectory=/opt/blockbook/zec
StandardError=file:/opt/blockbook/zec/logs/blockbook.log
# Hardening measures # Hardening measures
#################### ####################

View File

@ -2,20 +2,20 @@ Source: blockbook
Section: satoshilabs Section: satoshilabs
Priority: optional Priority: optional
Maintainer: jakub.matys@satoshilabs.com Maintainer: jakub.matys@satoshilabs.com
Build-Depends: debhelper, dh-systemd, dh-exec, upx Build-Depends: debhelper, dh-systemd, dh-exec
Standards-Version: 3.9.5 Standards-Version: 3.9.5
Package: blockbook-btc Package: blockbook-btc
Architecture: amd64 Architecture: amd64
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}, ${misc:Depends}, coreutils, passwd, findutils
Description: Satoshilabs blockbook server Description: Satoshilabs blockbook server
Package: blockbook-btc-testnet Package: blockbook-btc-testnet
Architecture: amd64 Architecture: amd64
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}, ${misc:Depends}, coreutils, passwd, findutils
Description: Satoshilabs blockbook server Description: Satoshilabs blockbook server
Package: blockbook-zec Package: blockbook-zec
Architecture: amd64 Architecture: amd64
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}, ${misc:Depends}, coreutils, passwd, findutils
Description: Satoshilabs blockbook server Description: Satoshilabs blockbook server

View File

@ -8,12 +8,10 @@ import (
"errors" "errors"
"fmt" "fmt"
"net/http" "net/http"
"os"
"strconv" "strconv"
"github.com/golang/glog" "github.com/golang/glog"
"github.com/gorilla/handlers"
"github.com/gorilla/mux" "github.com/gorilla/mux"
"github.com/prometheus/client_golang/prometheus/promhttp" "github.com/prometheus/client_golang/prometheus/promhttp"
) )
@ -30,8 +28,10 @@ type HTTPServer struct {
// NewHTTPServer creates new REST interface to blockbook and returns its handle // NewHTTPServer creates new REST interface to blockbook and returns its handle
func NewHTTPServer(httpServerBinding string, certFiles string, db *db.RocksDB, chain bchain.BlockChain, txCache *db.TxCache) (*HTTPServer, error) { func NewHTTPServer(httpServerBinding string, certFiles string, db *db.RocksDB, chain bchain.BlockChain, txCache *db.TxCache) (*HTTPServer, error) {
r := mux.NewRouter()
https := &http.Server{ https := &http.Server{
Addr: httpServerBinding, Addr: httpServerBinding,
Handler: r,
} }
s := &HTTPServer{ s := &HTTPServer{
https: https, https: https,
@ -42,7 +42,6 @@ func NewHTTPServer(httpServerBinding string, certFiles string, db *db.RocksDB, c
chainParser: chain.GetChainParser(), chainParser: chain.GetChainParser(),
} }
r := mux.NewRouter()
r.HandleFunc("/", s.info) r.HandleFunc("/", s.info)
r.HandleFunc("/bestBlockHash", s.bestBlockHash) r.HandleFunc("/bestBlockHash", s.bestBlockHash)
r.HandleFunc("/blockHash/{height}", s.blockHash) r.HandleFunc("/blockHash/{height}", s.blockHash)
@ -51,10 +50,6 @@ func NewHTTPServer(httpServerBinding string, certFiles string, db *db.RocksDB, c
r.HandleFunc("/unconfirmedTransactions/{address}", s.unconfirmedTransactions) r.HandleFunc("/unconfirmedTransactions/{address}", s.unconfirmedTransactions)
r.HandleFunc("/metrics", promhttp.Handler().ServeHTTP) r.HandleFunc("/metrics", promhttp.Handler().ServeHTTP)
var h http.Handler = r
h = handlers.LoggingHandler(os.Stderr, h)
https.Handler = h
return s, nil return s, nil
} }

View File

@ -76,7 +76,7 @@ func NewSocketIoServer(binding string, certFiles string, db *db.RocksDB, chain b
} }
// support for tests of socket.io interface // support for tests of socket.io interface
serveMux.Handle(path+"test.html", http.FileServer(http.Dir("./server/static/"))) serveMux.Handle(path+"test.html", http.FileServer(http.Dir("./static/")))
// redirect to Bitcore for details of transaction // redirect to Bitcore for details of transaction
serveMux.HandleFunc(path+"tx/", s.txRedirect) serveMux.HandleFunc(path+"tx/", s.txRedirect)
// handle socket.io // handle socket.io