Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[R4R]Resolve conflicts between fastnode and develop branch #1

Open
wants to merge 27 commits into
base: fastnode
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
a3f9e23
eth/protocols/snap, trie: better error-handling (#23657) (#582)
unclezoro Nov 24, 2021
1d94308
go.mod: update goleveldb (#23417) (#578)
flywukong Nov 24, 2021
fbc52de
[R4R]reannounce local pending transactions (#570)
keefel Nov 25, 2021
3337081
[R4R] pre-release ci flow (#594)
j75689 Nov 26, 2021
a9ac317
prepare for release v.1.1.6 (#603)
j75689 Nov 29, 2021
ec8d46e
reorganize the logic of reannouncing transactions (#620)
keefel Dec 3, 2021
7c1c8e2
[R4R] add timeout for stopping p2p server (#643)
yutianwu Dec 13, 2021
5218949
trie: reject deletions when verifying range proofs (#667)
keefel Dec 20, 2021
3a41924
merge with release v1.1.7
unclezoro Dec 20, 2021
ffb7f4a
Merge pull request #676 from binance-chain/catch_up_master
unclezoro Dec 27, 2021
50ad4e3
[R4R]Feature/backport geth native trace (#581)
jsvisa Dec 27, 2021
c78ecfb
[R4R]prefetch state by applying the transactions within one block (#704)
unclezoro Jan 11, 2022
ebc3933
ci: add arm binaries for release pipeline (#713)
j75689 Jan 14, 2022
476d520
[R4R]offline block prune (#543)
Mercybudda Jan 19, 2022
eb7e309
[R4R] implement State Verification && Snapshot Commit pipeline (#668)
unclezoro Jan 26, 2022
6499b3f
doc: update discord link (#740)
j75689 Jan 26, 2022
21a3b11
prepare for relase v1.1.8 (#741)
unclezoro Jan 26, 2022
c0c6396
fix pruner block tool bug, add some check logic
joeylichang Mar 25, 2022
91d7cd5
[R4R]Prefetch state data on mining process (#803)
qinglin89 Mar 28, 2022
58f3b2c
fix code of difflayer not assgin before return (#808)
unclezoro Mar 28, 2022
5f1aabe
fix race condition on preimage (#797)
unclezoro Mar 28, 2022
4ff9697
[R4R]add sharedStorage for prefetching to L1 (#792)
flywukong Mar 28, 2022
d894987
[R4R] state verification pipeline (#795)
forcodedancing Mar 28, 2022
cde35b0
add sharedStorage to the prefetcher of miner (#818)
flywukong Mar 29, 2022
4598334
disable diffsync when pipecommit is enabled (#820)
unclezoro Mar 30, 2022
4b00ba4
Merge branch 'pr640' into devM640
qinglin89 Apr 5, 2022
7f127be
tmp:update pruner
qinglin89 Apr 5, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/generate_change_log.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ TESTNET_ZIP_SUM="$(checksum ./testnet.zip)"
LINUX_BIN_SUM="$(checksum ./linux/geth)"
MAC_BIN_SUM="$(checksum ./macos/geth)"
WINDOWS_BIN_SUM="$(checksum ./windows/geth.exe)"
ARM5_BIN_SUM="$(checksum ./arm5/geth-linux-arm-5)"
ARM6_BIN_SUM="$(checksum ./arm6/geth-linux-arm-6)"
ARM7_BIN_SUM="$(checksum ./arm7/geth-linux-arm-7)"
ARM64_BIN_SUM="$(checksum ./arm64/geth-linux-arm64)"
OUTPUT=$(cat <<-END
## Changelog\n
${CHANGE_LOG}\n
Expand All @@ -35,6 +39,10 @@ ${CHANGE_LOG}\n
| geth_linux | ${LINUX_BIN_SUM} |\n
| geth_mac | ${MAC_BIN_SUM} |\n
| geth_windows | ${WINDOWS_BIN_SUM} |\n
| geth_linux_arm5 | ${ARM5_BIN_SUM} |\n
| geth_linux_arm6 | ${ARM6_BIN_SUM} |\n
| geth_linux_arm7 | ${ARM7_BIN_SUM} |\n
| geth_linux_arm64 | ${ARM64_BIN_SUM} |\n
END
)

Expand Down
4 changes: 2 additions & 2 deletions .github/release.env
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
MAINNET_FILE_URL="https://github.com/binance-chain/bsc/releases/download/v1.1.6/mainnet.zip"
TESTNET_FILE_URL="https://github.com/binance-chain/bsc/releases/download/v1.1.6/testnet.zip"
MAINNET_FILE_URL="https://github.com/binance-chain/bsc/releases/download/v1.1.7/mainnet.zip"
TESTNET_FILE_URL="https://github.com/binance-chain/bsc/releases/download/v1.1.7/testnet.zip"
105 changes: 105 additions & 0 deletions .github/workflows/pre-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,19 @@ jobs:
- name: Build Binary for ${{matrix.os}}
run: make geth

# ==============================
# Cross Compile for ARM
# ==============================

- name: Build Binary for ARM
if: matrix.os == 'ubuntu-18.04'
env:
GOPATH: /home/runner/work/woodpecker/go
run: |
mkdir -p $GOPATH/src/github.com/binance-chain/bsc/
cp -r ./* $GOPATH/src/github.com/binance-chain/bsc/
cd $GOPATH/src/github.com/binance-chain/bsc/ && make geth-linux-arm

# ==============================
# Upload artifacts
# ==============================
Expand All @@ -70,6 +83,34 @@ jobs:
name: windows
path: ./build/bin/geth.exe

- name: Upload ARM-5 Build
uses: actions/upload-artifact@v2
if: matrix.os == 'ubuntu-18.04'
with:
name: arm5
path: /home/runner/work/woodpecker/go/src/github.com/binance-chain/bsc/build/bin/geth-linux-arm-5

- name: Upload ARM-6 Build
uses: actions/upload-artifact@v2
if: matrix.os == 'ubuntu-18.04'
with:
name: arm6
path: /home/runner/work/woodpecker/go/src/github.com/binance-chain/bsc/build/bin/geth-linux-arm-6

- name: Upload ARM-7 Build
uses: actions/upload-artifact@v2
if: matrix.os == 'ubuntu-18.04'
with:
name: arm7
path: /home/runner/work/woodpecker/go/src/github.com/binance-chain/bsc/build/bin/geth-linux-arm-7

- name: Upload ARM-64 Build
uses: actions/upload-artifact@v2
if: matrix.os == 'ubuntu-18.04'
with:
name: arm64
path: /home/runner/work/woodpecker/go/src/github.com/binance-chain/bsc/build/bin/geth-linux-arm64

release:
name: Release
needs: build
Expand Down Expand Up @@ -102,6 +143,30 @@ jobs:
with:
name: windows
path: ./windows

- name: Download Artifacts
uses: actions/download-artifact@v2
with:
name: arm5
path: ./arm5

- name: Download Artifacts
uses: actions/download-artifact@v2
with:
name: arm6
path: ./arm6

- name: Download Artifacts
uses: actions/download-artifact@v2
with:
name: arm7
path: ./arm7

- name: Download Artifacts
uses: actions/download-artifact@v2
with:
name: arm64
path: ./arm64

- name: Download Config File
run: |
Expand Down Expand Up @@ -161,6 +226,46 @@ jobs:
asset_path: ./windows/geth.exe
asset_name: geth_windows.exe
asset_content_type: application/octet-stream

- name: Upload Release Asset - Linux ARM 5
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./arm5/geth-linux-arm-5
asset_name: geth-linux-arm-5
asset_content_type: application/octet-stream

- name: Upload Release Asset - Linux ARM 6
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./arm6/geth-linux-arm-6
asset_name: geth-linux-arm-6
asset_content_type: application/octet-stream

- name: Upload Release Asset - Linux ARM 7
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./arm7/geth-linux-arm-7
asset_name: geth-linux-arm-7
asset_content_type: application/octet-stream

- name: Upload Release Asset - Linux ARM 64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./arm64/geth-linux-arm64
asset_name: geth-linux-arm64
asset_content_type: application/octet-stream

- name: Upload Release Asset - MAINNET.ZIP
uses: actions/upload-release-asset@v1
Expand Down
105 changes: 105 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,19 @@ jobs:
- name: Build Binary for ${{matrix.os}}
run: make geth

# ==============================
# Cross Compile for ARM
# ==============================

- name: Build Binary for ARM
if: matrix.os == 'ubuntu-18.04'
env:
GOPATH: /home/runner/work/woodpecker/go
run: |
mkdir -p $GOPATH/src/github.com/binance-chain/bsc/
cp -r ./* $GOPATH/src/github.com/binance-chain/bsc/
cd $GOPATH/src/github.com/binance-chain/bsc/ && make geth-linux-arm

# ==============================
# Upload artifacts
# ==============================
Expand All @@ -71,6 +84,34 @@ jobs:
name: windows
path: ./build/bin/geth.exe

- name: Upload ARM-5 Build
uses: actions/upload-artifact@v2
if: matrix.os == 'ubuntu-18.04'
with:
name: arm5
path: /home/runner/work/woodpecker/go/src/github.com/binance-chain/bsc/build/bin/geth-linux-arm-5

- name: Upload ARM-6 Build
uses: actions/upload-artifact@v2
if: matrix.os == 'ubuntu-18.04'
with:
name: arm6
path: /home/runner/work/woodpecker/go/src/github.com/binance-chain/bsc/build/bin/geth-linux-arm-6

- name: Upload ARM-7 Build
uses: actions/upload-artifact@v2
if: matrix.os == 'ubuntu-18.04'
with:
name: arm7
path: /home/runner/work/woodpecker/go/src/github.com/binance-chain/bsc/build/bin/geth-linux-arm-7

- name: Upload ARM-64 Build
uses: actions/upload-artifact@v2
if: matrix.os == 'ubuntu-18.04'
with:
name: arm64
path: /home/runner/work/woodpecker/go/src/github.com/binance-chain/bsc/build/bin/geth-linux-arm64

release:
name: Release
needs: build
Expand Down Expand Up @@ -104,6 +145,30 @@ jobs:
name: windows
path: ./windows

- name: Download Artifacts
uses: actions/download-artifact@v2
with:
name: arm5
path: ./arm5

- name: Download Artifacts
uses: actions/download-artifact@v2
with:
name: arm6
path: ./arm6

- name: Download Artifacts
uses: actions/download-artifact@v2
with:
name: arm7
path: ./arm7

- name: Download Artifacts
uses: actions/download-artifact@v2
with:
name: arm64
path: ./arm64

- name: Download Config File
run: |
. ./.github/release.env
Expand Down Expand Up @@ -171,6 +236,46 @@ jobs:
asset_name: geth_windows.exe
asset_content_type: application/octet-stream

- name: Upload Release Asset - Linux ARM 5
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./arm5/geth-linux-arm-5
asset_name: geth-linux-arm-5
asset_content_type: application/octet-stream

- name: Upload Release Asset - Linux ARM 6
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./arm6/geth-linux-arm-6
asset_name: geth-linux-arm-6
asset_content_type: application/octet-stream

- name: Upload Release Asset - Linux ARM 7
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./arm7/geth-linux-arm-7
asset_name: geth-linux-arm-7
asset_content_type: application/octet-stream

- name: Upload Release Asset - Linux ARM 64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./arm64/geth-linux-arm64
asset_name: geth-linux-arm64
asset_content_type: application/octet-stream

- name: Upload Release Asset - MAINNET.ZIP
uses: actions/upload-release-asset@v1
env:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,5 @@ profile.cov
/dashboard/assets/package-lock.json

**/yarn-error.log
cmd/geth/node/
cmd/geth/__debug_bin
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## v1.1.8
FEATURES
* [\#668](https://github.com/binance-chain/bsc/pull/668) implement State Verification && Snapshot Commit pipeline
* [\#581](https://github.com/binance-chain/bsc/pull/581) implement geth native trace
* [\#543](https://github.com/binance-chain/bsc/pull/543) implement offline block prune tools

IMPROVEMENT
* [\#704](https://github.com/binance-chain/bsc/pull/704) prefetch state by applying the transactions within one block
* [\#713](https://github.com/binance-chain/bsc/pull/713) add ARM binaries for release pipeline

BUGFIX
* [\#667](https://github.com/binance-chain/bsc/pull/667) trie: reject deletions when verifying range proofs #667
* [\#643](https://github.com/binance-chain/bsc/pull/643) add timeout for stopping p2p server to fix can not gracefully shutdown issue
* [\#740](https://github.com/binance-chain/bsc/pull/740) update discord link which won't expire

## v1.1.7

BUGFIX
Expand Down
14 changes: 0 additions & 14 deletions PULL_REQUEST_TEMPLATE
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,3 @@ add an example CLI or API response...
Notable changes:
* add each change in a bullet point here
* ...

### Preflight checks

- [ ] build passed (`make build`)
- [ ] tests passed (`make test`)
- [ ] manual transaction test passed

### Already reviewed by

...

### Related issues

... reference related issue #'s here ...
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Binance Smart Chain starts its development based on go-ethereum fork. So you may
[![API Reference](
https://camo.githubusercontent.com/915b7be44ada53c290eb157634330494ebe3e30a/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f676f6c616e672f6764646f3f7374617475732e737667
)](https://pkg.go.dev/github.com/ethereum/go-ethereum?tab=doc)
[![Discord](https://img.shields.io/badge/discord-join%20chat-blue.svg)](https://discord.gg/5Z3C3SdxDw)
[![Discord](https://img.shields.io/badge/discord-join%20chat-blue.svg)](https://discord.gg/z2VpC455eU)

But from that baseline of EVM compatible, Binance Smart Chain introduces a system of 21 validators with Proof of Staked Authority (PoSA) consensus that can support short block time and lower fees. The most bonded validator candidates of staking will become validators and produce blocks. The double-sign detection and other slashing logic guarantee security, stability, and chain finality.

Expand Down Expand Up @@ -203,7 +203,7 @@ from anyone on the internet, and are grateful for even the smallest of fixes!

If you'd like to contribute to bsc, please fork, fix, commit and send a pull request
for the maintainers to review and merge into the main code base. If you wish to submit
more complex changes though, please check up with the core devs first on [our discord channel](https://discord.gg/5Z3C3SdxDw)
more complex changes though, please check up with the core devs first on [our discord channel](https://discord.gg/z2VpC455eU)
to ensure those changes are in line with the general philosophy of the project and/or get
some early feedback which can make both your efforts much lighter as well as our review
and merge procedures quick and simple.
Expand Down
2 changes: 1 addition & 1 deletion cmd/evm/disasm.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func disasmCmd(ctx *cli.Context) error {
case ctx.GlobalIsSet(InputFlag.Name):
in = ctx.GlobalString(InputFlag.Name)
default:
return errors.New("Missing filename or --input value")
return errors.New("missing filename or --input value")
}

code := strings.TrimSpace(in)
Expand Down
10 changes: 7 additions & 3 deletions cmd/evm/internal/t8ntool/execution.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ type stEnvMarshaling struct {
// Apply applies a set of transactions to a pre-state
func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig,
txs types.Transactions, miningReward int64,
getTracerFn func(txIndex int, txHash common.Hash) (tracer vm.Tracer, err error)) (*state.StateDB, *ExecutionResult, error) {
getTracerFn func(txIndex int, txHash common.Hash) (tracer vm.EVMLogger, err error)) (*state.StateDB, *ExecutionResult, error) {

// Capture errors for BLOCKHASH operation, if we haven't been supplied the
// required blockhashes
Expand Down Expand Up @@ -223,7 +223,9 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig,
statedb.AddBalance(pre.Env.Coinbase, minerReward)
}
// Commit block
root, _, err := statedb.Commit(chainConfig.IsEIP158(vmContext.BlockNumber))
statedb.Finalise(chainConfig.IsEIP158(vmContext.BlockNumber))
statedb.AccountsIntermediateRoot()
root, _, err := statedb.Commit(nil)
if err != nil {
fmt.Fprintf(os.Stderr, "Could not commit state: %v", err)
return nil, nil, NewError(ErrorEVM, fmt.Errorf("could not commit state: %v", err))
Expand Down Expand Up @@ -252,7 +254,9 @@ func MakePreState(db ethdb.Database, accounts core.GenesisAlloc) *state.StateDB
}
}
// Commit and re-open to start with a clean state.
root, _, _ := statedb.Commit(false)
statedb.Finalise(false)
statedb.AccountsIntermediateRoot()
root, _, _ := statedb.Commit(nil)
statedb, _ = state.New(root, sdb, nil)
return statedb
}
Expand Down
Loading