Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
32d3f3d
Update the Version, BuildNumber, genesistimestamp.data
Algo-devops-service Nov 18, 2021
8590499
Three new globals for to help contract-to-contract usability
jannotti Nov 21, 2021
24055a3
detritis
jannotti Nov 21, 2021
92a26b6
Check error
jannotti Nov 22, 2021
d268300
doc comments
jannotti Nov 22, 2021
116c06e
Support transaction arguments for `goal app method` (#3233)
jasonpaulos Nov 22, 2021
9807eab
CI: use libboost-math-dev instead of libboost-all-dev (#3223)
cce Nov 22, 2021
6cb3a52
testing: fixes to rest-participation-key e2e test (#3238)
algonautshant Nov 23, 2021
52b528b
testing: interactive mode for e2e testing (#3227)
algonautshant Nov 23, 2021
8aa0728
Merge pull request #3231 from Algo-devops-service/relbeta3.2.0
algojohnlee Nov 23, 2021
e5a1e53
Merge remote-tracking branch 'upstream/feature/contract-to-contract' …
jannotti Nov 23, 2021
597fc63
Make dev-mode tests less flaky. (#3252)
winder Nov 29, 2021
5339cf0
adding libtool to ubuntu deps (#3251)
barnjamin Nov 29, 2021
715f511
Fix error shadowing in Eval (#3258)
algorandskiy Nov 30, 2021
54db1c7
Disable flaky test. (#3256)
winder Nov 30, 2021
4e34eba
Merge branch 'master' into relbeta3.2.1
Algo-devops-service Nov 30, 2021
305d7ab
Update the Version, BuildNumber, genesistimestamp.data
Algo-devops-service Nov 30, 2021
2baf39b
Merge pull request #3260 from Algo-devops-service/relbeta3.2.1
algojohnlee Dec 2, 2021
6657c2b
Fix a data race in app tests (#3269)
algorandskiy Dec 2, 2021
b3ac9bd
Fix e2e.sh mixed indent characters. (#3266)
winder Dec 2, 2021
0a6374b
Fix ParticipationKeyResponse type. (#3264)
winder Dec 2, 2021
5456323
disable parallelism for e2e-go tests (#3242)
cce Dec 2, 2021
dc25f10
Updating Readme.md with circleci status badges (#3245)
algojack Dec 2, 2021
e466aa1
Fix formatting for CircleCI badges (#3272)
onetechnical Dec 3, 2021
70ff3c7
Add Custom Scenario for Performance Testing (#3278)
algobarb Dec 6, 2021
b6cbbf3
Merge pull request #3279 from Algo-devops-service/relstable3.2.1
algojohnlee Dec 7, 2021
db80261
Impose limits on the entire "tree" of inner calls.
jannotti Dec 7, 2021
850f7c7
ParticipationRegistry - StateProof loading methods (#3261)
winder Dec 7, 2021
221955f
Op base64 decode (#3220)
tzaffi Dec 8, 2021
d02cb89
Merge remote-tracking branch 'origin/rel/stable' into relstable3.2.1-…
Algo-devops-service Dec 8, 2021
e1b4442
Bump Version, Remove buildnumber.dat and genesistimestamp.dat files.
Algo-devops-service Dec 8, 2021
46eb760
Merge pull request #3290 from Algo-devops-service/relstable3.2.1-remerge
algojohnlee Dec 8, 2021
f51d2d7
Change golang version to 1.16.11 in go-algorand (#2825)
algojack Dec 8, 2021
02f6cac
Compatibility mode for partkeyinfo. (#3291)
winder Dec 9, 2021
5318545
TestEcdsa: fix flaky "tampering" of public key (#3282)
cce Dec 9, 2021
34d35fd
Move appID tracking into EvalContext, out of LedgerForLogic
jannotti Dec 9, 2021
6260b9d
Stupid linter
jannotti Dec 9, 2021
29a10da
Support reference types in `goal app method` (#3275)
jasonpaulos Dec 9, 2021
741d1ea
Add a hash prefix for ARCs-related hashes (#3298)
fabrice102 Dec 10, 2021
94ba758
catchup: suspend the catchup session once the agreement service kicks…
algonautshant Dec 10, 2021
4860375
Compatibility mode for partkeyinfo. (#3291)
winder Dec 9, 2021
4791706
catchup: suspend the catchup session once the agreement service kicks…
algonautshant Dec 10, 2021
3ac5e0e
Bump buildnumber.dat
onetechnical Dec 10, 2021
c4ef818
Merge pull request #3300 from algorand/relbeta3.2.2
algojohnlee Dec 10, 2021
493c2ea
testing: disable flaky test (#3268)
winder Dec 10, 2021
b2ca02f
enumerate conditions that might cause this fetchAndWrite to return fa…
barnjamin Dec 10, 2021
4624e33
Fix unit tests error messages
jannotti Dec 10, 2021
34b3eca
Merge branch 'rel/beta' into relstable3.2.2
Algo-devops-service Dec 10, 2021
18cd6cd
make sure the block service is not attempting to access the ledger af…
tsachiherman Dec 10, 2021
97e8068
Merge pull request #3305 from Algo-devops-service/relstable3.2.2
algojohnlee Dec 13, 2021
6330862
Avoid creating algod process for the sole purpose of retrieving the g…
tsachiherman Dec 13, 2021
ac5f839
documentation: fix algorand specs link (#3309)
tolikzinovyev Dec 14, 2021
34e2fbd
testing: reword partitiontest lint message. (#3297)
winder Dec 15, 2021
de7fe45
testing: fix random data race in TestAppAccountDataStorage (#3315)
tsachiherman Dec 15, 2021
d494c40
Allow access to resources created in the same transaction group
jannotti Dec 15, 2021
678c1ea
Merge branch 'rel/stable' of https://github.com/algorand/go-algorand …
egieseke Dec 15, 2021
3520336
Merge pull request #3317 from egieseke/rel/stable
algojohnlee Dec 15, 2021
4d25744
Merge branch 'master' into feature/contract-to-contract
jannotti Dec 16, 2021
320e11d
Merge remote-tracking branch 'upstream/feature/contract-to-contract' …
jannotti Dec 16, 2021
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
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ commands:
shell: bash.exe
command: |
choco install -y msys2 pacman make wget --force
choco install -y golang --version=1.14.7 --force
choco install -y golang --version=1.16.11 --force
choco install -y python3 --version=3.7.3 --force
export msys2='cmd //C RefreshEnv.cmd '
export msys2+='& set MSYS=winsymlinks:nativestrict '
Expand Down Expand Up @@ -322,7 +322,6 @@ commands:
export PACKAGE_NAMES=$(echo $PACKAGES | tr -d '\n')
export PARTITION_TOTAL=${CIRCLE_NODE_TOTAL}
export PARTITION_ID=${CIRCLE_NODE_INDEX}
export PARALLEL_FLAG="-p 1"
gotestsum --format testname --junitfile << parameters.result_path >>/<< parameters.result_subdir >>/${CIRCLE_NODE_INDEX}/results.xml --jsonfile << parameters.result_path >>/<< parameters.result_subdir >>/${CIRCLE_NODE_INDEX}/testresults.json -- --tags "sqlite_unlock_notify sqlite_omit_load_extension" << parameters.short_test_flag >> -race -timeout 1h -coverprofile=coverage.txt -covermode=atomic -p 1 $PACKAGE_NAMES
- store_artifacts:
path: << parameters.result_path >>
Expand Down Expand Up @@ -432,6 +431,7 @@ commands:
export TEST_RESULTS=<< parameters.result_path >>/<< parameters.result_subdir >>/${CIRCLE_NODE_INDEX}
export PARTITION_TOTAL=${CIRCLE_NODE_TOTAL}
export PARTITION_ID=${CIRCLE_NODE_INDEX}
export PARALLEL_FLAG="-p 1"
test/scripts/run_integration_tests.sh
- store_artifacts:
path: << parameters.result_path >>
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reviewdog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
- name: Install specific golang
uses: actions/setup-go@v2
with:
go-version: '1.16.6'
go-version: '1.16.11'
- name: Create folders for golangci-lint
run: mkdir -p cicdtmp/golangci-lint
- name: Check if custom golangci-lint is already built
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,5 @@ assets

index.html

# test summary
testresults.json
1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ else
export GOPATH := $(shell go env GOPATH)
GOPATH1 := $(firstword $(subst :, ,$(GOPATH)))
endif
export GO111MODULE := on
export GOPROXY := direct
SRCPATH := $(shell pwd)
ARCH := $(shell ./scripts/archtype.sh)
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[![Build Status](https://travis-ci.com/algorand/go-algorand.svg?branch=master)](https://travis-ci.com/algorand/go-algorand)
| rel/stable <br> [![CircleCI](https://circleci.com/gh/algorand/go-algorand/tree/rel%2Fstable.svg?style=svg)](https://circleci.com/gh/algorand/go-algorand/tree/rel%2Fstable) | rel/beta <br> [![CircleCI](https://circleci.com/gh/algorand/go-algorand/tree/rel%2Fbeta.svg?style=svg)](https://circleci.com/gh/algorand/go-algorand/tree/rel%2Fbeta) | rel/nightly <br> [![CircleCI](https://circleci.com/gh/algorand/go-algorand/tree/rel%2Fnightly.svg?style=svg)](https://circleci.com/gh/algorand/go-algorand/tree/rel%2Fnightly) |
| --- | --- | --- |

go-algorand
====================
Expand Down
2 changes: 1 addition & 1 deletion agreement/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ will also recover safely after crashes.
# Specification

The specification for the protocol implemented by this package is
located [here](https://github.com/algorand/spec).
located [here](https://github.com/algorandfoundation/specs).

Optimizations from and other deviations from the spec will be noted
throughout this file.
Expand Down
20 changes: 14 additions & 6 deletions catchup/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,11 @@ func (s *Service) innerFetch(r basics.Round, peer network.Peer) (blk *bookkeepin
}

// fetchAndWrite fetches a block, checks the cert, and writes it to the ledger. Cert checking and ledger writing both wait for the ledger to advance if necessary.
// Returns false if we couldn't fetch or write (i.e., if we failed even after a given number of retries or if we were told to abort.)
// Returns false if we should stop trying to catch up. This may occur for several reasons:
// - If the context is canceled (e.g. if the node is shutting down)
// - If we couldn't fetch the block (e.g. if there are no peers available or we've reached the catchupRetryLimit)
// - If the block is already in the ledger (e.g. if agreement service has already written it)
// - If the retrieval of the previous block was unsuccessful
func (s *Service) fetchAndWrite(r basics.Round, prevFetchCompleteChan chan bool, lookbackComplete chan bool, peerSelector *peerSelector) bool {
i := 0
hasLookback := false
Expand Down Expand Up @@ -241,8 +245,10 @@ func (s *Service) fetchAndWrite(r basics.Round, prevFetchCompleteChan chan bool,

if err != nil {
if err == errLedgerAlreadyHasBlock {
// ledger already has the block, no need to request this block from anyone.
return true
// ledger already has the block, no need to request this block.
// only the agreement could have added this block into the ledger, catchup is complete
s.log.Infof("fetchAndWrite(%d): the block is already in the ledger. The catchup is complete", r)
return false
}
s.log.Debugf("fetchAndWrite(%v): Could not fetch: %v (attempt %d)", r, err, i)
peerSelector.rankPeer(psp, peerRankDownloadFailed)
Expand Down Expand Up @@ -353,8 +359,10 @@ func (s *Service) fetchAndWrite(r basics.Round, prevFetchCompleteChan chan bool,
s.log.Infof("fetchAndWrite(%d): no need to re-evaluate historical block", r)
return true
case ledgercore.BlockInLedgerError:
s.log.Infof("fetchAndWrite(%d): block already in ledger", r)
return true
// the block was added to the ledger from elsewhere after fetching it here
// only the agreement could have added this block into the ledger, catchup is complete
s.log.Infof("fetchAndWrite(%d): after fetching the block, it is already in the ledger. The catchup is complete", r)
return false
case protocol.Error:
if !s.protocolErrorLogged {
logging.Base().Errorf("fetchAndWrite(%v): unrecoverable protocol error detected: %v", r, err)
Expand Down Expand Up @@ -387,7 +395,7 @@ func (s *Service) pipelineCallback(r basics.Round, thisFetchComplete chan bool,
thisFetchComplete <- fetchResult

if !fetchResult {
s.log.Infof("failed to fetch block %v", r)
s.log.Infof("pipelineCallback(%d): did not fetch or write the block", r)
return 0
}
return r
Expand Down
55 changes: 52 additions & 3 deletions cmd/goal/account.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ var (
partKeyOutDir string
partKeyFile string
partKeyDeleteInput bool
listpartkeyCompat bool
partkeyCompat bool
importDefault bool
mnemonic string
dumpOutFile string
Expand Down Expand Up @@ -167,7 +167,10 @@ func init() {
installParticipationKeyCmd.Flags().BoolVar(&partKeyDeleteInput, "delete-input", false, "Acknowledge that installpartkey will delete the input key file")

// listpartkey flags
listParticipationKeysCmd.Flags().BoolVarP(&listpartkeyCompat, "compatibility", "c", false, "Print output in compatibility mode. This option will be removed in a future release, please use REST API for tooling.")
listParticipationKeysCmd.Flags().BoolVarP(&partkeyCompat, "compatibility", "c", false, "Print output in compatibility mode. This option will be removed in a future release, please use REST API for tooling.")

// partkeyinfo flags
partkeyInfoCmd.Flags().BoolVarP(&partkeyCompat, "compatibility", "c", false, "Print output in compatibility mode. This option will be removed in a future release, please use REST API for tooling.")

// import flags
importCmd.Flags().BoolVarP(&importDefault, "default", "f", false, "Set this account as the default one")
Expand Down Expand Up @@ -1069,6 +1072,7 @@ func uintToStr(number uint64) string {
// legacyListParticipationKeysCommand prints key information in the same
// format as earlier versions of goal. Some users are using this information
// in scripts and need some extra time to migrate to the REST API.
// DEPRECATED
func legacyListParticipationKeysCommand() {
dataDir := ensureSingleDataDir()

Expand Down Expand Up @@ -1118,7 +1122,7 @@ var listParticipationKeysCmd = &cobra.Command{
Long: `List all participation keys tracked by algod along with summary of additional information. For detailed key information use 'partkeyinfo'.`,
Args: validateNoPosArgsFn,
Run: func(cmd *cobra.Command, args []string) {
if listpartkeyCompat {
if partkeyCompat {
legacyListParticipationKeysCommand()
return
}
Expand Down Expand Up @@ -1364,12 +1368,57 @@ func strOrNA(value *uint64) string {
return uintToStr(*value)
}

// legacyPartkeyInfoCommand prints key information in the same
// format as earlier versions of goal. Some users are using this information
// in scripts and need some extra time to migrate to alternatives.
// DEPRECATED
func legacyPartkeyInfoCommand() {
type partkeyInfo struct {
_struct struct{} `codec:",omitempty,omitemptyarray"`
Address string `codec:"acct"`
FirstValid basics.Round `codec:"first"`
LastValid basics.Round `codec:"last"`
VoteID crypto.OneTimeSignatureVerifier `codec:"vote"`
SelectionID crypto.VRFVerifier `codec:"sel"`
VoteKeyDilution uint64 `codec:"voteKD"`
}

onDataDirs(func(dataDir string) {
fmt.Printf("Dumping participation key info from %s...\n", dataDir)
client := ensureGoalClient(dataDir, libgoal.DynamicClient)

// Make sure we don't already have a partkey valid for (or after) specified roundLastValid
parts, err := client.ListParticipationKeyFiles()
if err != nil {
reportErrorf(errorRequestFail, err)
}

for filename, part := range parts {
fmt.Println("------------------------------------------------------------------")
info := partkeyInfo{
Address: part.Address().String(),
FirstValid: part.FirstValid,
LastValid: part.LastValid,
VoteID: part.VotingSecrets().OneTimeSignatureVerifier,
SelectionID: part.VRFSecrets().PK,
VoteKeyDilution: part.KeyDilution,
}
infoString := protocol.EncodeJSON(&info)
fmt.Printf("File: %s\n%s\n", filename, string(infoString))
}
})
}

var partkeyInfoCmd = &cobra.Command{
Use: "partkeyinfo",
Short: "Output details about all available part keys",
Long: `Output details about all available part keys in the specified data directory(ies), such as key validity period.`,
Args: validateNoPosArgsFn,
Run: func(cmd *cobra.Command, args []string) {
if partkeyCompat {
legacyPartkeyInfoCommand()
return
}

onDataDirs(func(dataDir string) {
fmt.Printf("Dumping participation key info from %s...\n", dataDir)
Expand Down
Loading