encrypt-s / kauri-api Goto Github PK
View Code? Open in Web Editor NEWAPI for the multi-currency Kauri Wallet
License: MIT License
API for the multi-currency Kauri Wallet
License: MIT License
goreleaser
from project dirnotes on GoReleaser:
unused code carried over from kowhai project should be removed
docs for this repo should be viewable on godoc like this https://godoc.org/github.com/micro/go-config
travis.yml should have go test -v -race ./...
included in script block
The race detector is integrated with the go tool chain. When the -race command-line flag is set, the compiler instruments all memory accesses with code that records when and how the memory was accessed, while the runtime library watches for unsynchronized accesses to shared variables. When such "racy" behavior is detected, a warning is printed.
go run app/main.go
should configure daemonthe following errors should be fixed:
app/api/api.go:62:1: exported function RouteBuilder should have comment or be unexported
app/api/api.go:68:1: exported function OpenRouteHandler should have comment or be unexported
app/conf/appconfig.go:22:6: exported type Coins should have comment or be unexported
app/daemon/daemonapi/vars.go:5:1: comment on exported var NavConfig should be of the form "NavConfig ..."
app/daemon/daemonrpc/rpc.go:14:6: exported type RpcRequestData should have comment or be unexported
app/daemon/daemonrpc/rpc.go:14:6: type RpcRequestData should be RPCRequestData
app/daemon/daemonrpc/rpc.go:19:6: exported type RpcResp should have comment or be unexported
app/daemon/daemonrpc/rpc.go:19:6: type RpcResp should be RPCResp
app/daemon/daemonrpc/rpc.go:60:1: exported function RPCFailed should have comment or be unexported
app/daemon/daemonrpc/rpc.go:69:2: var respJson should be respJSON
app/middleware/adapter.go:15:1: comment on exported function Adapt should be of the form "Adapt ..."
app/middleware/notify.go:8:1: exported function Notify should have comment or be unexported```
use getRawTransactionsHandler as initial functionality to model the pattern:
Details to be discussed on optimal deployment strategy
Ideas, Possible Approaches:
Configurations:
new response should omit results obj and have the following structure:
{"data":[{"currency":"NAV","addresses":[{"address":"NW7uXr4ZAeJKigMGnKbSLfCBQY59cH1T8G","transactions":[{"txid
struct names should make more sense and follow our spec:
https://app.swaggerhub.com/apis/Encrypt-S/kauri-api/0.0.1#/developers/getRawTransactions
From integration tests, measurements over time can be taken to create valuable metrics to fine-tune and optimise the API (Latency over time, latency on particular requests, etc..)
Further discussion needed into what metrics will be the most valuable for Kauri API.
Initial Approach (to be detailed out as separate issues):
The Go app should leverage the built-in profiler that supports CPU, memory, goroutine and block (contention) profiling.
easily enabled:
import (
"net/http"
_ "net/http/pprof"
)
advantages:
dev tasks (issues):
We will log in development / testnet only, not in production
Logging can be expensive in Go without a good strategy. Resist the temptation of logging almost everything. Gather as much information as possible, and do it properly. Avoid the white noise of logs containing useless elements. Ensure that our logs report meaningful data that improves the overall health and longevity of the Kauri API app.
Setup CI for optimal development:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.