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

go-algorand 3.6.0-beta Release PR #3909

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
5786a4e
avoid generating large output on TestDeadlockLogging. (#3771)
tsachiherman Mar 15, 2022
6ba692e
AVM: getbyte and setbyte description to say index must be within leng…
nullun Mar 15, 2022
af3b5d3
AVM: Improve error handling and execution time (#3612)
jannotti Mar 15, 2022
f7aeada
Disable bandwidth pprof svg generation by default, updated to use --s…
egieseke Mar 17, 2022
0e79364
Goal: Warn on invalid method signature assembly (#3614)
jasonpaulos Mar 17, 2022
5ef60a7
Goal: Add check for signer passed in the case of logic sig rekeyed ac…
barnjamin Mar 18, 2022
35be745
DevMode: create a block for external txns only (#3784)
algonautshant Mar 18, 2022
8ac7c8b
Ledger: Refactor online totals (#3770)
Mar 18, 2022
5a9f94a
fix TestAcctUpdateslookupLatestCacheRetry (#3804)
cce Mar 19, 2022
bc19540
build: compile with golang 1.16 (#3803)
tsachiherman Mar 21, 2022
32cfc42
tealdbg: Replace LocalRunner.Run with LocalRunner.RunAll (#3805)
michaeldiamant Mar 22, 2022
997bd86
build: update build dependencies to use go 1.16 (#3816)
tsachiherman Mar 22, 2022
17c0fee
Bug-Fix: ABI encode infer to slice IsNil handler removal (#3823)
ahangsu Mar 23, 2022
1d8bd1b
Bug-Fix: ABI inferToSlice nil testcases (#3826)
ahangsu Mar 24, 2022
6039b34
KMD: use updated karalabe lib (#3819)
id-ms Mar 25, 2022
e3fd274
Add build essentials to dependency list. (#3782)
winder Mar 25, 2022
9688e8f
REST client: always set Exclude value in accountInformationParams (#3…
cce Mar 25, 2022
93754db
ledger: test OnlineAccountData (#3831)
algorandskiy Mar 25, 2022
70b8050
change tooling to use 1.16.15 instead of 1.16.11 (#3833)
cce Mar 28, 2022
7126597
AVM: Rework around opcode fields for more flexible costs (#3832)
jannotti Mar 28, 2022
d8ea805
prefetcher: improve error reporting (#3815)
algonautshant Mar 29, 2022
9d9d759
config: add a warning comment about changing RewardUnit value (#3846)
algorandskiy Mar 30, 2022
ccb465c
Enhancement: Re-enable `fillBytes` method in ABI and eval.go implemen…
ahangsu Apr 2, 2022
0146fff
Algod: Fix issue with nil accounts in local-deltas array (#3790)
barnjamin Apr 2, 2022
70a5532
add test partitioning based on partition test verifier output (#3859)
cce Apr 6, 2022
95c5b0e
AVM: Assembly simplification & flexible costs (#3857)
jannotti Apr 6, 2022
e58901a
Add acct_params_get to langspec.json (#3862)
jannotti Apr 7, 2022
21b4bc5
Fix langspec (and some assembly errors) for itxn_field (#3869)
jannotti Apr 8, 2022
87f4cb6
AVM: Extract divideCeilUnsafely to help document opcode costing rati…
michaeldiamant Apr 11, 2022
376910d
Perform json_ref expected type validation before expensive JSON proce…
michaeldiamant Apr 11, 2022
51d8eaf
Enhancement: Nightly e2e test upload (#3849)
AlgoStephenAkiki Apr 11, 2022
2186649
algonet: use lower value of LastPartKeyRound for bootstrappedScenario…
cce Apr 12, 2022
0cc8a66
telemetry: report heartbeat metrics as JSON numbers (#3802)
cce Apr 12, 2022
85a02f7
add counters around dropping pseudonode and voteVerifier tasks, and s…
cce Apr 12, 2022
b0c551a
TealDbg: Support for StepOver and refactoring object IDs (#3653)
algochoi Apr 13, 2022
8554cfa
DevOps: Added recipe for transaction sync testing. (#3884)
egieseke Apr 15, 2022
8a5155f
remove buildpulse upload (#3883)
cce Apr 15, 2022
dbcca57
REST API: Check for pending transactions in most recent rounds first.…
winder Apr 19, 2022
07b2fbb
goal: Set default key dilution to be the same as algokey (#3801)
cce Apr 19, 2022
3dd1b6f
AVM: Deadcode and basic block analysis (#3870)
jannotti Apr 20, 2022
0b59e09
Source mapping: PC to TEAL (#3726)
algochoi Apr 20, 2022
12ded27
goal: Add asset optin command (#3881)
Eric-Warehime Apr 20, 2022
a35e609
goal: Rename source map output file (#3905)
algochoi Apr 22, 2022
9fa2fae
Algokey: clarify error messages. (#3727)
winder Apr 22, 2022
2a0ef59
Merge branch 'master' into relbeta3.6.0
Algo-devops-service Apr 22, 2022
70d9f6e
Update the Version, BuildNumber, genesistimestamp.data
Algo-devops-service Apr 22, 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
48 changes: 6 additions & 42 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,9 @@ workflows:
- << matrix.platform >>_build
filters:
<<: *filters-nightly
context: slack-secrets
context:
- slack-secrets
- aws-secrets

- tests_verification_job:
name: << matrix.platform >>_<< matrix.job_type >>_verification
Expand Down Expand Up @@ -196,7 +198,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.15 --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 @@ -335,9 +337,6 @@ commands:
key: 'go-cache-v2-{{ .Environment.CIRCLE_STAGE }}-{{ .Environment.CIRCLE_BUILD_NUM }}'
paths:
- tmp/go-cache
- upload_to_buildpulse:
platform: << parameters.platform >>
path: << parameters.result_path >>/<< parameters.result_subdir>>

upload_coverage:
description: Collect coverage reports and upload them
Expand All @@ -348,40 +347,6 @@ commands:
command: |
scripts/travis/upload_coverage.sh || true

upload_to_buildpulse:
description: Collect build reports and upload them
parameters:
platform:
type: string
path:
type: string
steps:
- run:
name: Send test results to BuildPulse
when: always
command: |
set -e
if ! ls << parameters.path >>/*/*.xml &> /dev/null; then exit 0; fi
sed -i"" -e 's/classname="/classname="<< parameters.platform >>-/' << parameters.path >>/*/*.xml
case "<< parameters.platform >>" in
arm64)
URL=https://github.com/buildpulse/test-reporter/releases/download/v0.21.0-pre/test-reporter-linux-arm64
SUM=53f94c29ad162c2b9ebb1f4a2f967f5262c0459ee4a0c34332977d8c89aafc18
;;
amd64)
URL=https://github.com/buildpulse/test-reporter/releases/download/v0.21.0-pre/test-reporter-linux-amd64
SUM=4655e54d756580c0de0112cab488e6e08d0af75e9fc8caea2d63f9e13be8beb5
;;
mac_amd64)
URL=https://github.com/buildpulse/test-reporter/releases/download/v0.21.0-pre/test-reporter-darwin-amd64
SUM=2f9e20a6f683c80f35d04e36bc57ecfe605bb48fee5a1b8d8f7c45094028eea3
;;
esac
curl -fsSL --retry 3 --retry-connrefused $URL > ./buildpulse-test-reporter
echo "$SUM *buildpulse-test-reporter" | shasum -a 256 -c --status
chmod +x ./buildpulse-test-reporter
./buildpulse-test-reporter submit << parameters.path >> --account-id 23182699 --repository-id 191266671 || true

generic_integration:
description: Run integration tests from build workspace, for re-use by diferent architectures
parameters:
Expand Down Expand Up @@ -432,6 +397,7 @@ commands:
export PARTITION_ID=${CIRCLE_NODE_INDEX}
export PARALLEL_FLAG="-p 1"
test/scripts/run_integration_tests.sh

- store_artifacts:
path: << parameters.result_path >>
destination: test-results
Expand All @@ -441,9 +407,6 @@ commands:
root: << parameters.result_path >>
paths:
- << parameters.result_subdir >>
- upload_to_buildpulse:
platform: << parameters.platform >>
path: << parameters.result_path >>/<< parameters.result_subdir>>

tests_verification_command:
description: Check if all tests were run at least once and only once across all parallel runs
Expand Down Expand Up @@ -651,6 +614,7 @@ jobs:
working_directory: << pipeline.parameters.build_dir >>/project
environment:
E2E_TEST_FILTER: "SCRIPTS"
E2E_PLATFORM: << parameters.platform >>
steps:
- prepare_build_dir
- prepare_go
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Install golang
uses: actions/setup-go@v2
with:
go-version: '1.14.7'
go-version: '1.16.15'
- name: Build Test
run: |
export ALGORAND_DEADLOCK=enable
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.15'
- name: Create folders for golangci-lint
run: mkdir -p cicdtmp/golangci-lint
- name: Check if custom golangci-lint is already built
Expand Down
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
5 changes: 5 additions & 0 deletions agreement/cryptoVerifier.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,12 @@ import (

"github.com/algorand/go-algorand/logging"
"github.com/algorand/go-algorand/protocol"
"github.com/algorand/go-algorand/util/metrics"
)

var voteVerifierOutFullCounter = metrics.MakeCounter(
metrics.MetricName{Name: "algod_agreement_vote_verifier_responses_dropped", Description: "Number of voteVerifier responses dropped due to full channel"})

// TODO put these in config
const (
voteParallelism = 16
Expand Down Expand Up @@ -210,6 +214,7 @@ func (c *poolCryptoVerifier) voteFillWorker(toBundleWait chan<- bundleFuture) {
select {
case c.votes.out <- asyncVerifyVoteResponse{index: votereq.TaskIndex, err: err, cancelled: true}:
default:
voteVerifierOutFullCounter.Inc(nil)
c.log.Infof("poolCryptoVerifier.voteFillWorker unable to write failed enqueue response to output channel")
}
}
Expand Down
9 changes: 9 additions & 0 deletions agreement/pseudonode.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"github.com/algorand/go-algorand/logging/logspec"
"github.com/algorand/go-algorand/logging/telemetryspec"
"github.com/algorand/go-algorand/protocol"
"github.com/algorand/go-algorand/util/metrics"
)

// TODO put these in config
Expand All @@ -43,6 +44,9 @@ var errPseudonodeVerifierClosedChannel = errors.New("crypto verifier closed the
var errPseudonodeNoVotes = errors.New("no valid participation keys to generate votes for given round")
var errPseudonodeNoProposals = errors.New("no valid participation keys to generate proposals for given round")

var pseudonodeBacklogFullByType = metrics.NewTagCounter("algod_agreement_pseudonode_tasks_dropped_{TAG}", "Number of pseudonode tasks dropped per type")
var pseudonodeResultTimeoutsByType = metrics.NewTagCounter("algod_agreement_pseudonode_tasks_timeouts_{TAG}", "Number of pseudonode task result timeouts per type")

// A pseudonode creates proposals and votes with a KeyManager which holds participation keys.
//
// It constructs these messages as if they arrived from an external source and were verified.
Expand Down Expand Up @@ -176,6 +180,7 @@ func (n asyncPseudonode) MakeProposals(ctx context.Context, r round, p period) (
return proposalTask.outputChannel(), nil
default:
proposalTask.close()
pseudonodeBacklogFullByType.Add("proposal", 1)
return nil, fmt.Errorf("unable to make proposal for (%d, %d): %w", r, p, errPseudonodeBacklogFull)
}
}
Expand All @@ -193,6 +198,7 @@ func (n asyncPseudonode) MakeVotes(ctx context.Context, r round, p period, s ste
return proposalTask.outputChannel(), nil
default:
proposalTask.close()
pseudonodeBacklogFullByType.Add("vote", 1)
return nil, fmt.Errorf("unable to make vote for (%d, %d, %d): %w", r, p, s, errPseudonodeBacklogFull)
}
}
Expand Down Expand Up @@ -474,6 +480,7 @@ verifiedVotesLoop:
return
case <-outputTimeout:
// we've been waiting for too long for this vote to be written to the output.
pseudonodeResultTimeoutsByType.Add("vote", 1)
t.node.log.Warnf("pseudonode.makeVotes: unable to write vote to output channel for round %d, period %d", t.round, t.period)
outputTimeout = nil
}
Expand Down Expand Up @@ -577,6 +584,7 @@ verifiedVotesLoop:
return
case <-outputTimeout:
// we've been waiting for too long for this vote to be written to the output.
pseudonodeResultTimeoutsByType.Add("pvote", 1)
t.node.log.Warnf("pseudonode.makeProposals: unable to write proposal vote to output channel for round %d, period %d", t.round, t.period)
outputTimeout = nil
}
Expand All @@ -597,6 +605,7 @@ verifiedPayloadsLoop:
return
case <-outputTimeout:
// we've been waiting for too long for this vote to be written to the output.
pseudonodeResultTimeoutsByType.Add("ppayload", 1)
t.node.log.Warnf("pseudonode.makeProposals: unable to write proposal payload to output channel for round %d, period %d", t.round, t.period)
outputTimeout = nil
}
Expand Down
2 changes: 1 addition & 1 deletion buildnumber.dat
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1
0
19 changes: 9 additions & 10 deletions cmd/algod/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,12 @@ func run() int {
}

version := config.GetCurrentVersion()
heartbeatGauge := metrics.MakeStringGauge()
heartbeatGauge.Set("version", version.String())
heartbeatGauge.Set("version-num", strconv.FormatUint(version.AsUInt64(), 10))
heartbeatGauge.Set("channel", version.Channel)
heartbeatGauge.Set("branch", version.Branch)
heartbeatGauge.Set("commit-hash", version.GetCommitHash())
var baseHeartbeatEvent telemetryspec.HeartbeatEventDetails
baseHeartbeatEvent.Info.Version = version.String()
baseHeartbeatEvent.Info.VersionNum = strconv.FormatUint(version.AsUInt64(), 10)
baseHeartbeatEvent.Info.Channel = version.Channel
baseHeartbeatEvent.Info.Branch = version.Branch
baseHeartbeatEvent.Info.CommitHash = version.GetCommitHash()

if *branchCheck {
fmt.Println(config.Branch)
Expand Down Expand Up @@ -339,12 +339,11 @@ func run() int {
defer ticker.Stop()

sendHeartbeat := func() {
values := make(map[string]string)
values := make(map[string]float64)
metrics.DefaultRegistry().AddMetrics(values)

heartbeatDetails := telemetryspec.HeartbeatEventDetails{
Metrics: values,
}
heartbeatDetails := baseHeartbeatEvent
heartbeatDetails.Metrics = values

log.EventWithDetails(telemetryspec.ApplicationState, telemetryspec.HeartbeatEvent, heartbeatDetails)
}
Expand Down
10 changes: 5 additions & 5 deletions cmd/algokey/keyreg.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,11 +144,11 @@ func run(params keyregCmdParams) error {
return errors.New("must provide --keyfile when registering participation keys")
}
if params.addr != "" {
return errors.New("do not provide --address when registering participation keys")
return errors.New("do not provide --account when registering participation keys")
}
} else {
if params.addr == "" {
return errors.New("must provide --address when bringing an account offline")
return errors.New("must provide --account when bringing an account offline")
}
if params.partkeyFile != "" {
return errors.New("do not provide --keyfile when bringing an account offline")
Expand All @@ -160,7 +160,7 @@ func run(params keyregCmdParams) error {
var err error
accountAddress, err = basics.UnmarshalChecksumAddress(params.addr)
if err != nil {
return fmt.Errorf("unable to parse --address: %w", err)
return fmt.Errorf("unable to parse --account: %w", err)
}
}

Expand All @@ -172,8 +172,8 @@ func run(params keyregCmdParams) error {
params.txFile = fmt.Sprintf("%s.tx", params.partkeyFile)
}

if util.FileExists(params.txFile) || params.txFile == stdoutFilenameValue {
return fmt.Errorf("outputFile '%s' already exists", params.partkeyFile)
if params.txFile != stdoutFilenameValue && util.FileExists(params.txFile) {
return fmt.Errorf("outputFile '%s' already exists", params.txFile)
}

// Lookup information from partkey file
Expand Down
2 changes: 1 addition & 1 deletion cmd/algokey/part.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ func init() {
partGenerateCmd.Flags().StringVar(&partKeyfile, "keyfile", "", "Participation key filename")
partGenerateCmd.Flags().Uint64Var(&partFirstRound, "first", 0, "First round for participation key")
partGenerateCmd.Flags().Uint64Var(&partLastRound, "last", 0, "Last round for participation key")
partGenerateCmd.Flags().Uint64Var(&partKeyDilution, "dilution", 0, "Key dilution (default to sqrt of validity window)")
partGenerateCmd.Flags().Uint64Var(&partKeyDilution, "dilution", 0, "Key dilution for two-level participation keys (defaults to sqrt of validity window)")
partGenerateCmd.Flags().StringVar(&partParent, "parent", "", "Address of parent account")
partGenerateCmd.MarkFlagRequired("first")
partGenerateCmd.MarkFlagRequired("last")
Expand Down
4 changes: 2 additions & 2 deletions cmd/goal/account.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ func init() {
addParticipationKeyCmd.Flags().Uint64VarP(&roundLastValid, "roundLastValid", "", 0, "The last round for which the generated partkey will be valid")
addParticipationKeyCmd.MarkFlagRequired("roundLastValid")
addParticipationKeyCmd.Flags().StringVarP(&partKeyOutDir, "outdir", "o", "", "Save participation key file to specified output directory to (for offline creation)")
addParticipationKeyCmd.Flags().Uint64VarP(&keyDilution, "keyDilution", "", 0, "Key dilution for two-level participation keys")
addParticipationKeyCmd.Flags().Uint64VarP(&keyDilution, "keyDilution", "", 0, "Key dilution for two-level participation keys (defaults to sqrt of validity window)")

// installParticipationKey flags
installParticipationKeyCmd.Flags().StringVar(&partKeyFile, "partkey", "", "Participation key file to install")
Expand Down Expand Up @@ -396,7 +396,7 @@ var newMultisigCmd = &cobra.Command{
}
}
if duplicatesDetected {
reportWarnln(warnMultisigDuplicatesDetected)
reportWarnRawln(warnMultisigDuplicatesDetected)
}
// Generate a new address in the default wallet
addr, err := client.CreateMultisigAccount(wh, threshold, args)
Expand Down
6 changes: 3 additions & 3 deletions cmd/goal/application.go
Original file line number Diff line number Diff line change
Expand Up @@ -408,13 +408,13 @@ func mustParseProgArgs() (approval []byte, clear []byte) {
}

if approvalProgFile != "" {
approval = assembleFile(approvalProgFile)
approval = assembleFile(approvalProgFile, false)
} else {
approval = mustReadFile(approvalProgRawFile)
}

if clearProgFile != "" {
clear = assembleFile(clearProgFile)
clear = assembleFile(clearProgFile, false)
} else {
clear = mustReadFile(clearProgRawFile)
}
Expand Down Expand Up @@ -1238,7 +1238,7 @@ var methodAppCmd = &cobra.Command{
}

var retType *abi.Type
if retTypeStr != "void" {
if retTypeStr != abi.VoidReturnType {
theRetType, err := abi.TypeOf(retTypeStr)
if err != nil {
reportErrorf("cannot cast %s to abi type: %v", retTypeStr, err)
Expand Down
Loading