mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00

* [NOD-1130] Delete rpcadapters.go. * [NOD-1130] Delete p2p. Move rpc to top level. * [NOD-1130] Remove DAGParams from rpcserverConfig. * [NOD-1130] Remove rpcserverPeer, rpcserverConnManager, rpcserverSyncManager, and rpcserverConfig. * [NOD-1130] Remove wallet RPC commands. * [NOD-1130] Remove wallet RPC commands. * [NOD-1130] Remove connmgr and peer. * [NOD-1130] Move rpcmodel into rpc. * [NOD-1130] Implement ConnectionCount. * [NOD-1130] Remove ping and node RPC commands. * [NOD-1130] Dummify handleGetNetTotals. * [NOD-1130] Add NetConnection to Peer. * [NOD-1130] Fix merge errors. * [NOD-1130] Implement Peers. * [NOD-1130] Fix HandleGetConnectedPeerInfo. * [NOD-1130] Fix SendRawTransaction. * [NOD-1130] Rename addManualNode to connect and removeManualNode to disconnect. * [NOD-1130] Add a stub for AddBlock. * [NOD-1130] Fix tests. * [NOD-1130] Replace half-baked contents of RemoveConnection with a stub. * [NOD-1130] Fix merge errors. * [NOD-1130] Make golint happy. * [NOD-1130] Get rid of something weird. * [NOD-1130] Rename minerClient back to client. * [NOD-1130] Add a few fields to GetConnectedPeerInfoResult. * [NOD-1130] Rename oneTry to isPermanent. * [NOD-1130] Implement ConnectionCount in NetAdapter. * [NOD-1130] Move RawMempoolVerbose out of mempool. * [NOD-1130] Move isSynced into the mining package. * [NOD-1130] Fix a compilation error. * [NOD-1130] Make golint happy. * [NOD-1130] Fix merge errors.
75 lines
2.1 KiB
Go
75 lines
2.1 KiB
Go
// Copyright (c) 2014-2017 The btcsuite developers
|
|
// Use of this source code is governed by an ISC
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package main
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"log"
|
|
"path/filepath"
|
|
"time"
|
|
|
|
"github.com/kaspanet/kaspad/rpc/client"
|
|
"github.com/kaspanet/kaspad/util"
|
|
"github.com/kaspanet/kaspad/wire"
|
|
)
|
|
|
|
func main() {
|
|
// Only override the handlers for notifications you care about.
|
|
// Also note most of these handlers will only be called if you register
|
|
// for notifications. See the documentation of the rpcclient
|
|
// NotificationHandlers type for more details about each handler.
|
|
ntfnHandlers := client.NotificationHandlers{
|
|
OnFilteredBlockAdded: func(blueScore uint64, header *wire.BlockHeader, txns []*util.Tx) {
|
|
log.Printf("Block added: %s (%d) %s",
|
|
header.BlockHash(), blueScore, header.Timestamp)
|
|
},
|
|
}
|
|
|
|
// Connect to local kaspad RPC server using websockets.
|
|
kaspadHomeDir := util.AppDataDir("kaspad", false)
|
|
certs, err := ioutil.ReadFile(filepath.Join(kaspadHomeDir, "rpc.cert"))
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
connCfg := &client.ConnConfig{
|
|
Host: "localhost:16110",
|
|
Endpoint: "ws",
|
|
User: "yourrpcuser",
|
|
Pass: "yourrpcpass",
|
|
Certificates: certs,
|
|
}
|
|
client, err := client.New(connCfg, &ntfnHandlers)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
// Register for block added notifications.
|
|
if err := client.NotifyBlocks(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
log.Println("NotifyBlocks: Registration Complete")
|
|
|
|
// Get the current block count.
|
|
blockCount, err := client.GetBlockCount()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
log.Printf("Block count: %d", blockCount)
|
|
|
|
// For this example gracefully shutdown the client after 10 seconds.
|
|
// Ordinarily when to shutdown the client is highly application
|
|
// specific.
|
|
log.Println("Client shutdown in 10 seconds...")
|
|
time.AfterFunc(time.Second*10, func() {
|
|
log.Println("Client shutting down...")
|
|
client.Shutdown()
|
|
log.Println("Client shutdown complete.")
|
|
})
|
|
|
|
// Wait until the client either shuts down gracefully (or the user
|
|
// terminates the process with Ctrl+C).
|
|
client.WaitForShutdown()
|
|
}
|