コード例 #1
0
ファイル: feeCharged.py プロジェクト: hopeyen/LN_fee_bound
def networktransferB(p, freq, onlineTX = 5.0, onlineTXTime = 1.0, r = 0.01, timeRun = 10.0):
    # network 2 
    network = simulation_1.Network(onlineTX, onlineTXTime, r, timeRun)
    
    Alice = simulation_1.Node("Alice", network)
    Bob = simulation_1.Node("Bob", network)
    Charlie = simulation_1.Node("Charlie", network)

    paymentAB = simulation_1.Payment(largeFrequency, largePayments, Alice, Bob)
    paymentBC = simulation_1.Payment(largeFrequency, largePayments, Bob, Charlie)
    paymentAC = simulation_1.Payment(freq, p, Alice, Bob)
    paymentAC1 = simulation_1.Payment(freq, p, Bob, Charlie)
    paymentAC.setTransfer(paymentAC1)

    channelAB = simulation_1.Channel(Alice, Bob, network)
    channelAB.addPayment(paymentAB)
    channelBC = simulation_1.Channel(Bob, Charlie, network)
    channelBC.addPayment(paymentBC)

    # payment goes through Channel AB and BC
    channelAB.addPayment(paymentAC)
    channelBC.addPayment(paymentAC1)


    network.addPaymentList([paymentAB, paymentBC, paymentAC])
    network.addTransferredList([paymentAC1])

    network.runNetwork()
    # network.printSummary()

    a = Alice.getChCostTotal()
    b = Bob.getChCostTotal()
    c = Charlie.getChCostTotal()

    return (a+c, b)
コード例 #2
0
ファイル: feeCharged.py プロジェクト: hopeyen/LN_fee_bound
def networkDirectAC(p, freq, onlineTX = 5.0, onlineTXTime = 1.0, r = 0.01, timeRun = 10.0):
    # set up the network
    network = simulation_1.Network(onlineTX, onlineTXTime, r, timeRun)

    Alice = simulation_1.Node("Alice", network)
    Bob = simulation_1.Node("Bob", network)
    Charlie = simulation_1.Node("Charlie", network)

    paymentAB = simulation_1.Payment(largeFrequency, largePayments, Alice, Bob)
    paymentBC = simulation_1.Payment(largeFrequency, largePayments, Bob, Charlie)
    paymentAC = simulation_1.Payment(freq, p, Alice, Charlie)

    channelAB = simulation_1.Channel(Alice, Bob, network)
    channelAB.addPayment(paymentAB)
    channelBC = simulation_1.Channel(Bob, Charlie, network)
    channelBC.addPayment(paymentBC)

    # Alice creates a direct channel for network 1
    channelAC = simulation_1.Channel(Alice, Charlie, network)
    channelAC.addPayment(paymentAC)
    
    network.addPaymentList([paymentAB, paymentBC, paymentAC])
    network.runNetwork()

    a = Alice.getChCostTotal()
    b = Bob.getChCostTotal()
    c = Charlie.getChCostTotal()

    return (a+c, b)
コード例 #3
0
ファイル: feeCharged.py プロジェクト: hopeyen/LN_fee_bound
def networkOG(p, freq, onlineTX = 5.0, onlineTXTime = 1.0, r = 0.01, timeRun = 10.0):
    # a star / fork network
    network = simulation_1.Network(onlineTX, onlineTXTime, r, timeRun)
    
    Alice = simulation_1.Node("Alice", network)
    Bob = simulation_1.Node("Bob", network)
    Charlie = simulation_1.Node("Charlie", network)

    paymentAB = simulation_1.Payment(largeFrequency, largePayments, Alice, Bob)
    paymentBC = simulation_1.Payment(largeFrequency, largePayments, Bob, Charlie)

    channelAB = simulation_1.Channel(Alice, Bob, network)
    channelBC = simulation_1.Channel(Bob, Charlie, network)

    channelAB.addPaymentList([paymentAB])
    channelBC.addPaymentList([paymentBC])

    
    network.addPaymentList([paymentAB, paymentBC])
    network.runNetwork()

    a = Alice.getChCostTotal()
    b = Bob.getChCostTotal()
    c = Charlie.getChCostTotal()

    return (a+c, b)
コード例 #4
0
def networkLine(p, freq, onlineTX, onlineTXTime, r, timeRun):
    # the network as a line A-B-C-D
    network = simulation_1.Network(onlineTX, onlineTXTime, r, timeRun)
    
    Alice = simulation_1.Node("Alice", network)
    Bob = simulation_1.Node("Bob", network)
    Charlie = simulation_1.Node("Charlie", network)
    Donna = simulation_1.Node("Donna", network)

    paymentAB = simulation_1.Payment(largePayment, largeFrequency, Alice, Bob)
    paymentBC = simulation_1.Payment(largePayment, largeFrequency, Bob, Charlie)
    paymentAD = simulation_1.Payment(freq, p, Alice, Bob)
    paymentAD1 = simulation_1.Payment(freq, p, Bob, Charlie)
    paymentAD2 = simulation_1.Payment(freq, p, Charlie, Donna)
    # paymentBD = simulation_1.Payment(0.5, 1, Bob, Charlie)
    # paymentBD1 = simulation_1.Payment(0.5, 1, Charlie, Donna)
    paymentCD = simulation_1.Payment(largePayment, largeFrequency, Charlie, Donna)
    paymentAD.setTransfer(paymentAD1)
    paymentAD1.setTransfer(paymentAD2)
    # paymentBD.setTransfer(paymentBD1)

    channelAB = simulation_1.Channel(Alice, Bob, network)
    channelBC = simulation_1.Channel(Bob, Charlie, network)
    channelCD = simulation_1.Channel(Charlie, Donna, network)

    channelAB.addPaymentList([paymentAB, paymentAD])
    # channelBC.addPaymentList([paymentBC, paymentAD1, paymentBD])
    channelBC.addPaymentList([paymentBC, paymentAD1])
    # channelCD.addPaymentList([paymentCD, paymentBD1, paymentAD2])
    channelCD.addPaymentList([paymentCD, paymentAD2])

    network.addNodeList([Alice, Bob, Charlie, Donna])
    network.addChannelList([channelAB, channelBC, channelCD])
    # network.addPaymentList([paymentAB, paymentBC, paymentAD, paymentBD, paymentCD])
    network.addPaymentList([paymentAB, paymentBC, paymentAD, paymentCD])

    network.runNetwork()

    a = Alice.getChCostTotal()
    b = Bob.getChCostTotal()
    c = Charlie.getChCostTotal()
    d = Donna.getChCostTotal()

    return (a, b, c, d)
コード例 #5
0
ファイル: 4node_testing.py プロジェクト: hopeyen/LN_fee_bound
def networkCycle(p, freq, onlineTX, onlineTXTime, r, timeRun):
    # diagonal network
    network = simulation_1.Network(onlineTX, onlineTXTime, r, timeRun)

    Alice = simulation_1.Node("Alice", network)
    Bob = simulation_1.Node("Bob", network)
    Charlie = simulation_1.Node("Charlie", network)
    Donna = simulation_1.Node("Donna", network)

    paymentAB = simulation_1.Payment(largeFrequency, largePayment, Alice, Bob)
    paymentBC = simulation_1.Payment(largeFrequency, largePayment, Charlie,
                                     Bob)
    paymentAD = simulation_1.Payment(freq, p, Alice, Donna)
    # paymentBD = simulation_1.Payment(0.5, 1, Bob, Charlie)
    # paymentBD1 = simulation_1.Payment(0.5, 1, Charlie, Donna)
    paymentCD = simulation_1.Payment(largeFrequency, largePayment, Charlie,
                                     Donna)
    # paymentBD.setTransfer(paymentBD1)

    channelAB = simulation_1.Channel(Alice, Bob, network)
    channelBC = simulation_1.Channel(Bob, Charlie, network)
    channelCD = simulation_1.Channel(Charlie, Donna, network)
    channelAD = simulation_1.Channel(Charlie, Donna, network)

    channelAB.addPaymentList([paymentAB])
    # channelBC.addPaymentList([paymentBC, paymentBD])
    channelBC.addPaymentList([paymentBC])
    # channelCD.addPaymentList([paymentCD, paymentBD1])
    channelCD.addPaymentList([paymentCD])
    channelAD.addPaymentList([paymentAD])

    # network.addPaymentList([paymentAB, paymentBC, paymentAD, paymentBD, paymentCD])
    network.addPaymentList([paymentAB, paymentBC, paymentAD, paymentCD])

    network.runNetwork()

    a = Alice.getChCostTotal()
    b = Bob.getChCostTotal()
    c = Charlie.getChCostTotal()
    d = Donna.getChCostTotal()

    return (a, b, c, d)
コード例 #6
0
ファイル: 4nodes.py プロジェクト: hopeyen/LN_fee_bound
def networkTri(p, freq, onlineTX, onlineTXTime, r, timeRun):
    # Triangle with c extension
    network = simulation_1.Network(onlineTX, onlineTXTime, r, timeRun)

    Alice = simulation_1.Node("Alice", network)
    Bob = simulation_1.Node("Bob", network)
    Charlie = simulation_1.Node("Charlie", network)
    Donna = simulation_1.Node("Donna", network)

    paymentAB = simulation_1.Payment(0.5, 1, Alice, Bob)
    paymentBC = simulation_1.Payment(0.5, 1, Bob, Charlie)
    paymentAD = simulation_1.Payment(freq, p, Alice, Donna)
    paymentBD = simulation_1.Payment(0.5, 1, Bob, Donna)
    paymentCD = simulation_1.Payment(0.5, 1, Charlie, Bob)
    paymentCD1 = simulation_1.Payment(0.5, 1, Bob, Donna)
    paymentCD.setTransfer(paymentCD1)

    channelAB = simulation_1.Channel(Alice, Bob, 20, 20, network)
    channelBC = simulation_1.Channel(Bob, Charlie, 20, 20, network)
    channelBD = simulation_1.Channel(Bob, Donna, 20, 20, network)
    # added direct channel for payment AD
    channelAD = simulation_1.Channel(Alice, Donna, 5, 0, network)

    channelAB.addPaymentList([paymentAB])
    channelBC.addPaymentList([paymentBC, paymentCD])
    channelAD.addPaymentList([paymentAD])
    channelBD.addPaymentList([paymentBD, paymentCD1])

    network.addNodeList([Alice, Bob, Charlie, Donna])
    network.addChannelList([channelAB, channelBC, channelAD, channelBD])
    network.addPaymentList(
        [paymentAB, paymentBC, paymentAD, paymentBD, paymentCD])

    network.runNetwork()

    a = Alice.getChCostTotal()
    b = Bob.getChCostTotal()
    c = Charlie.getChCostTotal()
    d = Donna.getChCostTotal()

    return (a, b, c, d)
コード例 #7
0
ファイル: 4node_testing.py プロジェクト: hopeyen/LN_fee_bound
def networkTri2(p, freq, onlineTX, onlineTXTime, r, timeRun):
    # Triangle with c extension
    network = simulation_1.Network(onlineTX, onlineTXTime, r, timeRun)

    Alice = simulation_1.Node("Alice", network)
    Bob = simulation_1.Node("Bob", network)
    Charlie = simulation_1.Node("Charlie", network)
    Donna = simulation_1.Node("Donna", network)

    paymentAB = simulation_1.Payment(largeFrequency, largePayment, Alice, Bob)
    paymentBC = simulation_1.Payment(largeFrequency, largePayment, Charlie,
                                     Bob)
    paymentAD = simulation_1.Payment(freq, p, Alice, Donna)
    paymentAC = simulation_1.Payment(freq, p, Alice, Charlie)
    paymentBD = simulation_1.Payment(largeFrequency, largePayment, Donna, Bob)

    channelAB = simulation_1.Channel(Alice, Bob, network)
    channelBC = simulation_1.Channel(Bob, Charlie, network)
    channelBD = simulation_1.Channel(Bob, Donna, network)
    # added direct channel for payment AD
    channelAD = simulation_1.Channel(Alice, Donna, network)
    channelAC = simulation_1.Channel(Alice, Charlie, network)

    channelAB.addPaymentList([paymentAB])
    channelBC.addPaymentList([paymentBC])
    channelAD.addPaymentList([paymentAD])
    channelBD.addPaymentList([paymentBD])
    channelAC.addPaymentList([paymentAC])

    network.addPaymentList([paymentAB, paymentBC, paymentAD, paymentBD])

    network.runNetwork()

    a = Alice.getChCostTotal()
    b = Bob.getChCostTotal()
    c = Charlie.getChCostTotal()
    d = Donna.getChCostTotal()

    return (a, b, c, d)
コード例 #8
0
def networkOG(p, freq, onlineTX, onlineTXTime, r, timeRun):
    # diagonal network
    network = simulation_1.Network(onlineTX, onlineTXTime, r, timeRun)

    Alice = simulation_1.Node("Alice", network)
    Bob = simulation_1.Node("Bob", network)
    Charlie = simulation_1.Node("Charlie", network)
    Donna = simulation_1.Node("Donna", network)

    paymentAB = simulation_1.Payment(0.5, 1, Alice, Bob)
    paymentBC = simulation_1.Payment(0.5, 1, Bob, Charlie)
    paymentAD = simulation_1.Payment(freq, p, Alice, Donna)
    paymentBD = simulation_1.Payment(0.5, 1, Bob, Charlie)
    paymentBD1 = simulation_1.Payment(0.5, 1, Charlie, Donna)
    paymentCD = simulation_1.Payment(0.5, 1, Charlie, Donna)

    channelAB = simulation_1.Channel(Alice, Bob, 5, 0, network)
    channelBC = simulation_1.Channel(Bob, Charlie, 20, 20, network)
    channelCD = simulation_1.Channel(Charlie, Donna, 20, 20, network)
    channelAD = simulation_1.Channel(Charlie, Donna, 20, 20, network)

    channelAB.addPaymentList([paymentAB])
    channelBC.addPaymentList([paymentBC, paymentBD])
    channelCD.addPaymentList([paymentCD, paymentBD1])
    channelAD.addPaymentList([paymentAD])

    network.addNodeList([Alice, Bob, Charlie, Donna])
    network.addChannelList([channelAB, channelBC, channelCD, channelAD])
    network.addPaymentList(
        [paymentAB, paymentBC, paymentAD, paymentBD, paymentCD])

    network.runNetwork()

    a = Alice.getChCostTotal()
    b = Bob.getChCostTotal()
    c = Charlie.getChCostTotal()
    d = Donna.getChCostTotal()

    return (a, b, c, d)
コード例 #9
0
ファイル: 4node_testing.py プロジェクト: hopeyen/LN_fee_bound
def networkStar2(p, freq, onlineTX, onlineTXTime, r, timeRun):
    # a star / fork network
    network = simulation_1.Network(onlineTX, onlineTXTime, r, timeRun)

    Alice = simulation_1.Node("Alice", network)
    Bob = simulation_1.Node("Bob", network)
    Charlie = simulation_1.Node("Charlie", network)
    Donna = simulation_1.Node("Donna", network)

    paymentAB = simulation_1.Payment(largeFrequency, largePayment, Alice, Bob)
    paymentBC = simulation_1.Payment(largeFrequency, largePayment, Charlie,
                                     Bob)
    paymentAD = simulation_1.Payment(freq, p, Alice, Bob)
    paymentAD1 = simulation_1.Payment(freq, p, Bob, Donna)
    paymentAC = simulation_1.Payment(freq, p, Alice, Bob)
    paymentAC1 = simulation_1.Payment(freq, p, Bob, Charlie)
    paymentBD = simulation_1.Payment(largeFrequency, largePayment, Bob, Donna)
    paymentAD.setTransfer(paymentAD1)
    paymentAC.setTransfer(paymentAC1)

    channelAB = simulation_1.Channel(Alice, Bob, network)
    channelBC = simulation_1.Channel(Bob, Charlie, network)
    channelBD = simulation_1.Channel(Bob, Donna, network)

    channelAB.addPaymentList([paymentAB, paymentAD, paymentAC])
    channelBC.addPaymentList([paymentBC, paymentAC1])
    channelBD.addPaymentList([paymentBD, paymentAD1])

    network.addPaymentList([paymentAB, paymentBC, paymentAD, paymentBD])

    network.runNetwork()

    a = Alice.getChCostTotal()
    b = Bob.getChCostTotal()
    c = Charlie.getChCostTotal()
    d = Donna.getChCostTotal()

    return (a, b, c, d)