org.bitcoin.paymentchannel
Interface Protos.InitiateOrBuilder

All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
All Known Implementing Classes:
Protos.Initiate, Protos.Initiate.Builder
Enclosing class:
Protos

public static interface Protos.InitiateOrBuilder
extends com.google.protobuf.MessageOrBuilder


Method Summary
 long getExpireTimeSecs()
          required uint64 expire_time_secs = 3;
 long getMinAcceptedChannelSize()
          required uint64 min_accepted_channel_size = 2;
 long getMinPayment()
          required uint64 min_payment = 4;
 com.google.protobuf.ByteString getMultisigKey()
          required bytes multisig_key = 1;
 boolean hasExpireTimeSecs()
          required uint64 expire_time_secs = 3;
 boolean hasMinAcceptedChannelSize()
          required uint64 min_accepted_channel_size = 2;
 boolean hasMinPayment()
          required uint64 min_payment = 4;
 boolean hasMultisigKey()
          required bytes multisig_key = 1;
 
Methods inherited from interface com.google.protobuf.MessageOrBuilder
findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField
 
Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder
isInitialized
 

Method Detail

hasMultisigKey

boolean hasMultisigKey()
required bytes multisig_key = 1;
 This must be a raw pubkey in regular ECDSA form. Both compressed and non-compressed forms
 are accepted. It is used only in the creation of the multisig contract, as outputs are
 created entirely by the secondary
 


getMultisigKey

com.google.protobuf.ByteString getMultisigKey()
required bytes multisig_key = 1;
 This must be a raw pubkey in regular ECDSA form. Both compressed and non-compressed forms
 are accepted. It is used only in the creation of the multisig contract, as outputs are
 created entirely by the secondary
 


hasMinAcceptedChannelSize

boolean hasMinAcceptedChannelSize()
required uint64 min_accepted_channel_size = 2;
 Once a channel is exhausted a new one must be set up. So secondary indicates the minimum
 size it's willing to accept here. This can be lower to trade off resources against
 security but shouldn't be so low the transactions get rejected by the network as spam.
 Zero isn't a sensible value to have here, so we make the field required.
 


getMinAcceptedChannelSize

long getMinAcceptedChannelSize()
required uint64 min_accepted_channel_size = 2;
 Once a channel is exhausted a new one must be set up. So secondary indicates the minimum
 size it's willing to accept here. This can be lower to trade off resources against
 security but shouldn't be so low the transactions get rejected by the network as spam.
 Zero isn't a sensible value to have here, so we make the field required.
 


hasExpireTimeSecs

boolean hasExpireTimeSecs()
required uint64 expire_time_secs = 3;
 Rough UNIX time for when the channel expires. This is determined by the block header
 timestamps which can be very inaccurate when miners use the obsolete RollNTime hack.
 Channels could also be specified in terms of block heights but then how do you know the
 current chain height if you don't have internet access? Trust the server? Probably opens up
 attack vectors. We can assume the client has an independent clock, however. If the client
 considers this value too far off (eg more than a day), it may send an ERROR and close the
 channel.
 


getExpireTimeSecs

long getExpireTimeSecs()
required uint64 expire_time_secs = 3;
 Rough UNIX time for when the channel expires. This is determined by the block header
 timestamps which can be very inaccurate when miners use the obsolete RollNTime hack.
 Channels could also be specified in terms of block heights but then how do you know the
 current chain height if you don't have internet access? Trust the server? Probably opens up
 attack vectors. We can assume the client has an independent clock, however. If the client
 considers this value too far off (eg more than a day), it may send an ERROR and close the
 channel.
 


hasMinPayment

boolean hasMinPayment()
required uint64 min_payment = 4;
 The amount of money the server requires for the initial payment. The act of opening a channel
 always transfers some quantity of money to the server: it's impossible to have a channel with
 zero value transferred. This rule ensures that you can't get a channel that can't be settled
 due to having paid under the dust limit. Because the dust limit will float in future, the
 server tells the client what it thinks it is, and the client is supposed to sanity check this
 value.
 


getMinPayment

long getMinPayment()
required uint64 min_payment = 4;
 The amount of money the server requires for the initial payment. The act of opening a channel
 always transfers some quantity of money to the server: it's impossible to have a channel with
 zero value transferred. This rule ensures that you can't get a channel that can't be settled
 due to having paid under the dust limit. Because the dust limit will float in future, the
 server tells the client what it thinks it is, and the client is supposed to sanity check this
 value.
 



Copyright © 2014. All rights reserved.