Merge pull request #2513 from cfromknecht/add-base-reward

wtpolicy+wtwire+wtserver: add base reward
This commit is contained in:
Olaoluwa Osuntokun 2019-01-31 19:13:31 -08:00 committed by GitHub
commit f98cc26a6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 3 deletions

@ -48,6 +48,11 @@ type Policy struct {
// for this session.
MaxUpdates uint16
// RewardBase is the fixed amount allocated to the tower when the
// policy's blob type specifies a reward for the tower. This is taken
// before adding the proportional reward.
RewardBase uint32
// RewardRate is the fraction of the total balance of the revoked
// commitment that the watchtower is entitled to. This value is
// expressed in millionths of the total balance.

@ -393,6 +393,7 @@ func (s *Server) handleCreateSession(peer Peer, id *wtdb.SessionID,
Policy: wtpolicy.Policy{
BlobType: req.BlobType,
MaxUpdates: req.MaxUpdates,
RewardBase: req.RewardBase,
RewardRate: req.RewardRate,
SweepFeeRate: req.SweepFeeRate,
},

@ -163,6 +163,7 @@ var createSessionTests = []createSessionTestCase{
createMsg: &wtwire.CreateSession{
BlobType: blob.TypeDefault,
MaxUpdates: 1000,
RewardBase: 0,
RewardRate: 0,
SweepFeeRate: 1,
},
@ -184,6 +185,7 @@ var createSessionTests = []createSessionTestCase{
createMsg: &wtwire.CreateSession{
BlobType: 0,
MaxUpdates: 1000,
RewardBase: 0,
RewardRate: 0,
SweepFeeRate: 1,
},
@ -283,6 +285,7 @@ var stateUpdateTests = []stateUpdateTestCase{
createMsg: &wtwire.CreateSession{
BlobType: blob.TypeDefault,
MaxUpdates: 3,
RewardBase: 0,
RewardRate: 0,
SweepFeeRate: 1,
},
@ -312,6 +315,7 @@ var stateUpdateTests = []stateUpdateTestCase{
createMsg: &wtwire.CreateSession{
BlobType: blob.TypeDefault,
MaxUpdates: 4,
RewardBase: 0,
RewardRate: 0,
SweepFeeRate: 1,
},
@ -335,6 +339,7 @@ var stateUpdateTests = []stateUpdateTestCase{
createMsg: &wtwire.CreateSession{
BlobType: blob.TypeDefault,
MaxUpdates: 4,
RewardBase: 0,
RewardRate: 0,
SweepFeeRate: 1,
},
@ -362,6 +367,7 @@ var stateUpdateTests = []stateUpdateTestCase{
createMsg: &wtwire.CreateSession{
BlobType: blob.TypeDefault,
MaxUpdates: 4,
RewardBase: 0,
RewardRate: 0,
SweepFeeRate: 1,
},
@ -389,6 +395,7 @@ var stateUpdateTests = []stateUpdateTestCase{
createMsg: &wtwire.CreateSession{
BlobType: blob.TypeDefault,
MaxUpdates: 4,
RewardBase: 0,
RewardRate: 0,
SweepFeeRate: 1,
},
@ -418,6 +425,7 @@ var stateUpdateTests = []stateUpdateTestCase{
createMsg: &wtwire.CreateSession{
BlobType: blob.TypeDefault,
MaxUpdates: 4,
RewardBase: 0,
RewardRate: 0,
SweepFeeRate: 1,
},
@ -446,6 +454,7 @@ var stateUpdateTests = []stateUpdateTestCase{
createMsg: &wtwire.CreateSession{
BlobType: blob.TypeDefault,
MaxUpdates: 3,
RewardBase: 0,
RewardRate: 0,
SweepFeeRate: 1,
},
@ -475,6 +484,7 @@ var stateUpdateTests = []stateUpdateTestCase{
createMsg: &wtwire.CreateSession{
BlobType: blob.TypeDefault,
MaxUpdates: 3,
RewardBase: 0,
RewardRate: 0,
SweepFeeRate: 1,
},

@ -20,6 +20,11 @@ type CreateSession struct {
// for this session.
MaxUpdates uint16
// RewardBase is the fixed amount allocated to the tower when the
// policy's blob type specifies a reward for the tower. This is taken
// before adding the proportional reward.
RewardBase uint32
// RewardRate is the fraction of the total balance of the revoked
// commitment that the watchtower is entitled to. This value is
// expressed in millionths of the total balance.
@ -44,6 +49,7 @@ func (m *CreateSession) Decode(r io.Reader, pver uint32) error {
return ReadElements(r,
&m.BlobType,
&m.MaxUpdates,
&m.RewardBase,
&m.RewardRate,
&m.SweepFeeRate,
)
@ -57,6 +63,7 @@ func (m *CreateSession) Encode(w io.Writer, pver uint32) error {
return WriteElements(w,
m.BlobType,
m.MaxUpdates,
m.RewardBase,
m.RewardRate,
m.SweepFeeRate,
)
@ -75,5 +82,5 @@ func (m *CreateSession) MsgType() MessageType {
//
// This is part of the wtwire.Message interface.
func (m *CreateSession) MaxPayloadLength(uint32) uint32 {
return 16
return 2 + 2 + 4 + 4 + 8 // 20
}

@ -11,8 +11,9 @@ func MessageSummary(msg Message) string {
case *CreateSession:
return fmt.Sprintf("blob_type=%s, max_updates=%d "+
"reward_rate=%d sweep_fee_rate=%d", msg.BlobType,
msg.MaxUpdates, msg.RewardRate, msg.SweepFeeRate)
"reward_base=%d reward_rate=%d sweep_fee_rate=%d",
msg.BlobType, msg.MaxUpdates, msg.RewardBase,
msg.RewardRate, msg.SweepFeeRate)
case *CreateSessionReply:
return fmt.Sprintf("code=%d", msg.Code)