mirror of https://github.com/poanetwork/quorum.git
add api stubs for permission node
This commit is contained in:
parent
0605e4db37
commit
b24e51de1b
|
@ -0,0 +1,54 @@
|
|||
package backend
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/rpc"
|
||||
"github.com/ethereum/go-ethereum/log"
|
||||
)
|
||||
|
||||
type PermissionAPI struct {
|
||||
}
|
||||
|
||||
func NewPermissionAPI() *PermissionAPI {
|
||||
return &PermissionAPI{}
|
||||
}
|
||||
|
||||
func APIs() []rpc.API {
|
||||
return []rpc.API{
|
||||
{
|
||||
Namespace: "permnode",
|
||||
Version: "1.0",
|
||||
Service: NewPermissionAPI(),
|
||||
Public: true,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (s *PermissionAPI) AddVoter(addr string) string {
|
||||
log.Info("AJ-called1")
|
||||
return "added voter " + addr
|
||||
}
|
||||
|
||||
func (s *PermissionAPI) ProposeNode(enodeId string) string {
|
||||
log.Info("AJ-called2")
|
||||
return "proposed node " + enodeId
|
||||
}
|
||||
|
||||
func (s *PermissionAPI) BlacklistNode(enodeId string) string {
|
||||
log.Info("AJ-called3")
|
||||
return "blacklisted node " + enodeId
|
||||
}
|
||||
|
||||
func (s *PermissionAPI) RemoveNode(enodeId string) string {
|
||||
log.Info("AJ-called4")
|
||||
return "removed node " + enodeId
|
||||
}
|
||||
|
||||
func (s *PermissionAPI) ApproveNode(enodeId string) string {
|
||||
log.Info("AJ-called5")
|
||||
return "approved node " + enodeId
|
||||
}
|
||||
|
||||
func (s *PermissionAPI) ValidNodes() []string {
|
||||
log.Info("AJ-called6")
|
||||
return []string{"n1", "n2"}
|
||||
}
|
|
@ -32,6 +32,10 @@ const (
|
|||
NodeDelete
|
||||
)
|
||||
|
||||
func SayHello(n string) string{
|
||||
return "Hello " + n + "!"
|
||||
}
|
||||
|
||||
// This function first adds the node list from permissioned-nodes.json to
|
||||
// the permissiones contract deployed as a precompile via genesis.json
|
||||
func QuorumPermissioning(ctx *cli.Context, stack *node.Node ) error {
|
||||
|
|
|
@ -52,7 +52,7 @@ import (
|
|||
"github.com/ethereum/go-ethereum/params"
|
||||
"github.com/ethereum/go-ethereum/rlp"
|
||||
"github.com/ethereum/go-ethereum/rpc"
|
||||
)
|
||||
)
|
||||
|
||||
type LesServer interface {
|
||||
Start(srvr *p2p.Server)
|
||||
|
|
|
@ -32,6 +32,7 @@ var Modules = map[string]string{
|
|||
"txpool": TxPool_JS,
|
||||
"raft": Raft_JS,
|
||||
"istanbul": Istanbul_JS,
|
||||
"permnode": PermissionsNode_JS,
|
||||
}
|
||||
|
||||
const Chequebook_JS = `
|
||||
|
@ -674,6 +675,48 @@ web3._extend({
|
|||
})
|
||||
`
|
||||
|
||||
const PermissionsNode_JS = `
|
||||
web3._extend({
|
||||
property: 'permnode',
|
||||
methods:
|
||||
[
|
||||
],
|
||||
properties:
|
||||
[
|
||||
new web3._extend.Method({
|
||||
name: 'blacklistNode',
|
||||
call: 'permnode_blacklistNode',
|
||||
params: 1
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'addVoter',
|
||||
call: 'permnode_addVoter',
|
||||
params: 1
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'proposeNode',
|
||||
call: 'permnode_proposeNode',
|
||||
params: 1
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'removeNode',
|
||||
call: 'permnode_removeNode',
|
||||
params: 1
|
||||
}),
|
||||
new web3._extend.Method({
|
||||
name: 'approveNode',
|
||||
call: 'permnode_approveNode',
|
||||
params: 1
|
||||
}),
|
||||
new web3._extend.Property({
|
||||
name: 'ValidNodes',
|
||||
getter: 'permnode_validNodes',
|
||||
params: 1
|
||||
}),
|
||||
]
|
||||
})
|
||||
`
|
||||
|
||||
const Istanbul_JS = `
|
||||
web3._extend({
|
||||
property: 'istanbul',
|
||||
|
|
|
@ -34,6 +34,7 @@ import (
|
|||
"github.com/ethereum/go-ethereum/p2p"
|
||||
"github.com/ethereum/go-ethereum/rpc"
|
||||
"github.com/prometheus/prometheus/util/flock"
|
||||
"github.com/ethereum/go-ethereum/controls/backend"
|
||||
)
|
||||
|
||||
// Node is a container on which services can be registered.
|
||||
|
@ -257,6 +258,10 @@ func (n *Node) startRPC(services map[reflect.Type]Service) error {
|
|||
for _, service := range services {
|
||||
apis = append(apis, service.APIs()...)
|
||||
}
|
||||
|
||||
apis = append(apis, backend.APIs()...)
|
||||
log.Info("AJ-permissions api added")
|
||||
|
||||
// Start the various API endpoints, terminating all in case of errors
|
||||
if err := n.startInProc(apis); err != nil {
|
||||
return err
|
||||
|
|
Loading…
Reference in New Issue