Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
B
blockdb
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
blockchain
blockdb
Commits
c017ec12
Commit
c017ec12
authored
4 years ago
by
Robert Martin-Legene
Browse files
Options
Downloads
Patches
Plain Diff
Support for defining transaction types
parent
2b1c2651
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
collector/Dockerfile
+3
-4
3 additions, 4 deletions
collector/Dockerfile
collector/sql.pm
+7
-6
7 additions, 6 deletions
collector/sql.pm
postgres/10-postgres.sql
+167
-50
167 additions, 50 deletions
postgres/10-postgres.sql
with
177 additions
and
60 deletions
collector/Dockerfile
+
3
−
4
View file @
c017ec12
FROM
debian
RUN
useradd
--create-home
--shell
/bin/bash bfa
&&
mkdir
/home/bfa/collector
RUN
apt-get update
&&
apt-get upgrade
-y
RUN
apt-get
install
-y
libjson-perl libnet-dns-perl libdbd-pg-perl libwww-perl
vim
RUN
apt-get
install
-y
libclass-accessor-perl
RUN
apt-get
install
-y
libjson-perl libnet-dns-perl libdbd-pg-perl libwww-perl
libclass-accessor-perl
WORKDIR
/home/bfa
COPY
collector.pl sql.pm /home/bfa/collector/
RUN
chown
-R
bfa /home/bfa
USER
bfa
WORKDIR
/home/bfa
ENV
BFANODE http://public.47525974938.bfa.martin-legene.dk:8545/
CMD
/home/bfa/collector/collector.pl
#CMD sleep 14d
ENV
BFANODE http://public.47525974938.bfa.martin-legene.dk:8545/
This diff is collapsed.
Click to expand it.
collector/sql.pm
+
7
−
6
View file @
c017ec12
...
...
@@ -62,8 +62,8 @@ sub insertTransactionWithContractAddress
( hash, "blockId", nonce, gas,
"gasPrice", value, "fromAccountId","toAccountId",
status, "gasUsed", input, inputlen,
"contractaddressAccountId" )
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)
"type",
"contractaddressAccountId" )
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?
,?
)
)
)
);
}
...
...
@@ -71,7 +71,7 @@ sub insertTransactionWithContractAddress
$_
[
6
]
=
$self
->
selectAccountIdByAddress
(
$_
[
6
]
);
$_
[
7
]
=
$self
->
selectAccountIdByAddress
(
$_
[
7
]
);
$_
[
12
]
=
$self
->
selectAccountIdByAddress
(
$_
[
12
]
);
$self
->
sth_insertTransactionWithContractAddress
->
execute
(
@
_
);
$self
->
sth_insertTransactionWithContractAddress
->
execute
(
@
_
,
'
explicit
'
);
}
__PACKAGE__
->
mk_accessors
(
'
sth_insertTransaction
'
);
...
...
@@ -85,15 +85,16 @@ sub insertTransaction
INSERT INTO transaction
( hash, "blockId", nonce, gas,
"gasPrice", value, "fromAccountId","toAccountId",
status, "gasUsed", input, inputlen )
VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
status, "gasUsed", input, inputlen,
"type" )
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)
)
)
);
}
$_
[
1
]
=
$self
->
selectBlockhashByHash
(
$_
[
1
]
);
$_
[
6
]
=
$self
->
selectAccountIdByAddress
(
$_
[
6
]
);
$_
[
7
]
=
$self
->
selectAccountIdByAddress
(
$_
[
7
]
);
$self
->
sth_insertTransaction
->
execute
(
@
_
);
$self
->
sth_insertTransaction
->
execute
(
@
_
,
'
explicit
'
);
}
__PACKAGE__
->
mk_accessors
(
'
sth_selectBlockhashById
'
);
...
...
This diff is collapsed.
Click to expand it.
postgres/10-postgres.sql
+
167
−
50
View file @
c017ec12
...
...
@@ -2,69 +2,186 @@
\
connect
"postgres"
;
CREATE
SEQUENCE
account_id_seq
INCREMENT
1
MINVALUE
1
MAXVALUE
2147483647
START
1000
CACHE
1
;
CREATE
TYPE
transactiontype
AS
ENUM
(
'unknown'
,
'internal'
,
'explicit'
);
CREATE
SEQUENCE
account_id_seq
INCREMENT
1
MINVALUE
1
MAXVALUE
2147483647
START
1000
CACHE
1
;
CREATE
TABLE
"public"
.
"account"
(
"id"
bigint
DEFAULT
nextval
(
'account_id_seq'
)
NOT
NULL
,
"address"
character
(
42
)
NOT
NULL
,
"shortname"
character
varying
(
16
),
"name"
character
varying
(
255
),
CONSTRAINT
"account_id"
PRIMARY
KEY
(
"id"
),
CONSTRAINT
"account_hash"
UNIQUE
(
"address"
)
"id"
bigint
DEFAULT
nextval
(
'account_id_seq'
)
NOT
NULL
,
"address"
character
(
42
)
NOT
NULL
,
"shortname"
character
varying
(
16
),
"name"
character
varying
(
255
),
CONSTRAINT
"account_id"
PRIMARY
KEY
(
"id"
),
CONSTRAINT
"account_hash"
UNIQUE
(
"address"
)
)
WITH
(
oids
=
false
);
CREATE
SEQUENCE
blockhash_id_seq
INCREMENT
1
MINVALUE
1
MAXVALUE
2147483647
START
1000000
CACHE
1
;
CREATE
SEQUENCE
blockhash_id_seq
INCREMENT
1
MINVALUE
1
MAXVALUE
2147483647
START
1000000
CACHE
1
;
CREATE
TABLE
"public"
.
"blockhash"
(
"id"
bigint
DEFAULT
nextval
(
'blockhash_id_seq'
)
NOT
NULL
,
"hash"
character
(
66
)
NOT
NULL
,
CONSTRAINT
"blockhash_id"
PRIMARY
KEY
(
"id"
),
CONSTRAINT
"blockhash_hash"
UNIQUE
(
"hash"
)
"id"
bigint
DEFAULT
nextval
(
'blockhash_id_seq'
)
NOT
NULL
,
"hash"
character
(
66
)
NOT
NULL
,
CONSTRAINT
"blockhash_id"
PRIMARY
KEY
(
"id"
),
CONSTRAINT
"blockhash_hash"
UNIQUE
(
"hash"
)
)
WITH
(
oids
=
false
);
CREATE
TABLE
"public"
.
"block"
(
"id"
bigint
NOT
NULL
,
"id"
bigint
NOT
NULL
,
"parentBlockhashId"
bigint
,
"number"
bigint
NOT
NULL
,
"sealerAccountId"
bigint
,
"timestamp"
bigint
NOT
NULL
,
"difficulty"
smallint
NOT
NULL
,
"gasUsed"
bigint
NOT
NULL
,
"gasLimit"
bigint
NOT
NULL
,
"size"
bigint
NOT
NULL
,
CONSTRAINT
"block_id"
PRIMARY
KEY
(
"id"
),
CONSTRAINT
"block_sealerAccountId_fkey"
FOREIGN
KEY
(
"sealerAccountId"
)
REFERENCES
account
(
id
)
NOT
DEFERRABLE
,
CONSTRAINT
"block_id_fkey"
FOREIGN
KEY
(
id
)
REFERENCES
blockhash
(
id
)
NOT
DEFERRABLE
,
CONSTRAINT
"block_parentBlockhashId_fkey"
FOREIGN
KEY
(
"parentBlockhashId"
)
REFERENCES
blockhash
(
id
)
NOT
DEFERRABLE
"number"
bigint
NOT
NULL
,
"sealerAccountId"
bigint
,
"timestamp"
bigint
NOT
NULL
,
"difficulty"
smallint
NOT
NULL
,
"gasUsed"
bigint
NOT
NULL
,
"gasLimit"
bigint
NOT
NULL
,
"size"
bigint
NOT
NULL
,
CONSTRAINT
"block_id"
PRIMARY
KEY
(
"id"
),
CONSTRAINT
"block_sealerAccountId_fkey"
FOREIGN
KEY
(
"sealerAccountId"
)
REFERENCES
account
(
id
)
NOT
DEFERRABLE
,
CONSTRAINT
"block_id_fkey"
FOREIGN
KEY
(
id
)
REFERENCES
blockhash
(
id
)
NOT
DEFERRABLE
,
CONSTRAINT
"block_parentBlockhashId_fkey"
FOREIGN
KEY
(
"parentBlockhashId"
)
REFERENCES
blockhash
(
id
)
NOT
DEFERRABLE
)
WITH
(
oids
=
false
);
CREATE
INDEX
"block_parentBlockHashId"
ON
"public"
.
"block"
USING
btree
(
"parentBlockhashId"
);
CREATE
INDEX
"block_sealerAccountId"
ON
"public"
.
"block"
USING
btree
(
"sealerAccountId"
);
CREATE
INDEX
"block_number"
ON
"public"
.
"block"
USING
btree
(
"number"
);
CREATE
INDEX
"block_timestamp"
ON
"public"
.
"block"
USING
btree
(
"timestamp"
);
CREATE
INDEX
"block_parentBlockHashId"
ON
"public"
.
"block"
USING
btree
(
"parentBlockhashId"
);
CREATE
INDEX
"block_sealerAccountId"
ON
"public"
.
"block"
USING
btree
(
"sealerAccountId"
);
CREATE
INDEX
"block_number"
ON
"public"
.
"block"
USING
btree
(
"number"
);
CREATE
INDEX
"block_timestamp"
ON
"public"
.
"block"
USING
btree
(
"timestamp"
);
CREATE
TABLE
"public"
.
"transaction"
(
"hash"
character
(
66
)
NOT
NULL
,
"blockId"
bigint
,
"nonce"
bigint
NOT
NULL
,
"gas"
bigint
NOT
NULL
,
"gasPrice"
bigint
NOT
NULL
,
"value"
bigint
NOT
NULL
,
"fromAccountId"
bigint
NOT
NULL
,
"toAccountId"
bigint
NOT
NULL
,
"contractaddressAccountId"
bigint
,
"status"
smallint
NOT
NULL
,
"gasUsed"
bigint
NOT
NULL
,
"inputlen"
smallint
NOT
NULL
,
"input"
text
NOT
NULL
,
CONSTRAINT
"transaction_contractaddressAccountId_fkey"
FOREIGN
KEY
(
"contractaddressAccountId"
)
REFERENCES
account
(
id
)
NOT
DEFERRABLE
,
CONSTRAINT
"transaction_fromAccountId_fkey"
FOREIGN
KEY
(
"fromAccountId"
)
REFERENCES
account
(
id
)
NOT
DEFERRABLE
,
CONSTRAINT
"transaction_toAccountId_fkey"
FOREIGN
KEY
(
"toAccountId"
)
REFERENCES
account
(
id
)
NOT
DEFERRABLE
,
CONSTRAINT
"transaction_blockId_fkey"
FOREIGN
KEY
(
"blockId"
)
REFERENCES
block
(
id
)
NOT
DEFERRABLE
"hash"
character
(
66
)
NOT
NULL
,
"blockId"
bigint
,
"type"
transactiontype
DEFAULT
'unknown'
NOT
NULL
,
"nonce"
bigint
NOT
NULL
,
"gas"
bigint
NOT
NULL
,
"gasPrice"
bigint
NOT
NULL
,
"value"
bigint
NOT
NULL
,
"fromAccountId"
bigint
NOT
NULL
,
"toAccountId"
bigint
NOT
NULL
,
"contractaddressAccountId"
bigint
,
"status"
smallint
NOT
NULL
,
"gasUsed"
bigint
NOT
NULL
,
"inputlen"
smallint
NOT
NULL
,
"input"
text
NOT
NULL
,
CONSTRAINT
"transaction_contractaddressAccountId_fkey"
FOREIGN
KEY
(
"contractaddressAccountId"
)
REFERENCES
account
(
id
)
NOT
DEFERRABLE
,
CONSTRAINT
"transaction_fromAccountId_fkey"
FOREIGN
KEY
(
"fromAccountId"
)
REFERENCES
account
(
id
)
NOT
DEFERRABLE
,
CONSTRAINT
"transaction_toAccountId_fkey"
FOREIGN
KEY
(
"toAccountId"
)
REFERENCES
account
(
id
)
NOT
DEFERRABLE
,
CONSTRAINT
"transaction_blockId_fkey"
FOREIGN
KEY
(
"blockId"
)
REFERENCES
block
(
id
)
NOT
DEFERRABLE
)
WITH
(
oids
=
false
);
CREATE
INDEX
"transaction_contractaddressAccountId"
ON
"public"
.
"transaction"
USING
btree
(
"contractaddressAccountId"
);
CREATE
INDEX
"transaction_fromAccountId"
ON
"public"
.
"transaction"
USING
btree
(
"fromAccountId"
);
CREATE
INDEX
"transaction_toAccountId"
ON
"public"
.
"transaction"
USING
btree
(
"toAccountId"
);
CREATE
INDEX
"transaction_blockId"
ON
"public"
.
"transaction"
USING
btree
(
"blockId"
);
CREATE
INDEX
"transaction_contractaddressAccountId"
ON
"public"
.
"transaction"
USING
btree
(
"contractaddressAccountId"
);
CREATE
INDEX
"transaction_fromAccountId"
ON
"public"
.
"transaction"
USING
btree
(
"fromAccountId"
);
CREATE
INDEX
"transaction_toAccountId"
ON
"public"
.
"transaction"
USING
btree
(
"toAccountId"
);
CREATE
INDEX
"transaction_blockId"
ON
"public"
.
"transaction"
USING
btree
(
"blockId"
);
CREATE
VIEW
b
AS
SELECT
b1
.
hash
"hash"
,
b2
.
hash
"parentHash"
,
number
,
account
.
address
sealer
,
timestamp
,
difficulty
,
"gasUsed"
,
"gasLimit"
,
size
FROM
block
,
blockhash
b1
,
blockhash
b2
,
account
WHERE
block
.
id
=
b1
.
id
AND
block
.
"parentBlockhashId"
=
b2
.
id
AND
block
.
"sealerAccountId"
=
account
.
id
;
CREATE
VIEW
b
AS
SELECT
b1
.
hash
"hash"
,
b2
.
hash
"parentHash"
,
number
,
account
.
address
sealer
,
timestamp
,
difficulty
,
"gasUsed"
,
"gasLimit"
,
size
FROM
block
,
blockhash
b1
,
blockhash
b2
,
account
WHERE
block
.
id
=
b1
.
id
AND
block
.
"parentBlockhashId"
=
b2
.
id
AND
block
.
"sealerAccountId"
=
account
.
id
;
CREATE
VIEW
t
AS
SELECT
transaction
.
hash
"transaction hash"
,
block
.
number
"block number"
,
"type"
,
nonce
,
gas
,
"gasPrice"
"gas price"
,
value
,
a1
.
address
"from"
,
a2
.
address
"to"
,
a3
.
address
"contractaddress"
,
status
,
transaction
.
"gasUsed"
"gas used"
,
inputlen
FROM
transaction
LEFT
JOIN
account
a3
ON
(
transaction
.
"contractaddressAccountId"
=
a3
.
id
),
block
,
account
a1
,
account
a2
WHERE
block
.
id
=
transaction
.
"blockId"
AND
a1
.
id
=
"fromAccountId"
AND
a2
.
id
=
"toAccountId"
;
INSERT
INTO
"account"
(
"id"
,
"address"
,
"shortname"
,
"name"
)
VALUES
(
1
,
'0x377ab0cd00744dbb07b369cd5c0872dcd362c8f0'
,
'UNER'
,
'Universidad Nacional de Entre Rios'
),
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment