Comments (9)
the code in the paper is for Hyperledger. it is written in Go.
For Ethereum, the bench_q2.js is correct.
from blockbench.
Hi @ug93tad
I was talking about the hyperledger versions of the benchmark
Specifically I was talking about how bench_q2.js calls the QueryAccount function in the go code
And here is that function in the go code
query account only takes in the account and a block number. Then it returns the account balance at that block
It doesn't seem to actually find the Max Transaction value of an account between blocks i and j. It just gets the balance of an account at block i
from blockbench.
oh i see. There're a mix-up in the implementation of bench_q1.js and bench_q2.js here.
The idea is to use query_account for every block from start_block to end_block, similar to the "get_max" function in bench_q1.js. (In fact, bench_q1.js was supposed to contain the correct implementation for Q2, and vice-versa).
We'll update the code.
@ijingo
from blockbench.
@ug93tad not a mix-up, it seems a typo.
There is a "range_account" method in analytic.go for this query, which takes in three parameters.
Change the "QueryAccount" (line 18) in bench_q2.js to "RangeAccount" to invoke the correct query.
@Bigboss88 I don't have the test environment now, would you mind trying it?
from blockbench.
Hello I've tried the range_account It still seems to return the max balance of the account which is different than the max transaction value
I've added some things to the response to help with debugging. Such as I that tracks how many time through the for loop the program runs
It seems to run that same number of time regardless of the start and end block
from blockbench.
Hi, it seems to me the query works. I am not so sure about "return the max balance of the account which is different than the max transaction value" you said.
According to the implementation, the loop will start from the latest version of one account (lines 367 - 370) and stop until the block number is smaller than the input range (line 377), so no matter what end block you input, it will scan start from the latest one. Try some different start block number as the input, it may output different loop numbers.
from blockbench.
@ijingo
Ok that makes sense
What I meant was that Q2 is supposed to find the max transaction value of an account between block i and j
Unless I'm wrong in the go code it's comparing the balance of the account versions
if balance.Val > ret && balance.StartBlock >= start_blk && balance.StartBlock <= end_blk {
ret = balance.Val
}
from blockbench.
Oh yes, you are right, this one should be Q3 like q3 in ethereum analytics
Actually Q2 implementation is similar, just to query the difference between versions. Q2 and Q3 are similar which are aimed to demonstrate account level scan query, whereas Q1 is to demonstrate block level scan query.
from blockbench.
@ijingo
Ok thanks I'll make those changes
from blockbench.
Related Issues (20)
- missing token address in report resutls HOT 3
- DoNothing experiment in ethereum 2.0
- hyperledger/start-root.sh:.:4: no such file or directory: env.sh HOT 2
- etherstart-mining.sh geth connection refuse HOT 1
- Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/InRelease HOT 2
- Please compile the driver in .../src/macro/kvstore HOT 1
- How to send invalid transactions within smallbank?
- Fatal: Unable to attach to remote geth: connection refused HOT 2
- Can a computer be used as a node and a client at the same time HOT 1
- ./driver -db fabric-v1.4 -ops 1000 -threads 4 -txrate 100 -fp stat.txt -endpoint localhost:7041,localhost:7051 HOT 7
- Tendermint configuration
- Can blockbench be used to test the stale (orphan) block rate?
- Does ycsb execute other operations than insert ? (Fabric v2.2)
- A transaction sending problem in the latest version of Ethereum HOT 1
- When Ethereum experiment, the client has no target address
- What shall I do after I change configtx.yaml(Fabric v1.4) HOT 2
- How to adjust parameters in benchmark? HOT 2
- Saturation experience
- fabricv2.2 HOT 4
- Need help with implementing Quorum_raft
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blockbench.