Compare commits

..
10 changed files with 14 additions and 250 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
name: Publish on release
name: Publish onn release
on:
release:
types: [published]
+1 -25
View File
@@ -36,7 +36,7 @@ jobs:
- uses: codecov/codecov-action@v3
with:
file: ./coverage.txt
fail_ci_if_error: false
fail_ci_if_error: true
if: env.GIT_DIFF
test-importer:
@@ -81,30 +81,6 @@ jobs:
make test-rpc
if: env.GIT_DIFF
sdk_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Checkout laconic-sdk
uses: actions/checkout@v3
with:
path: "./laconic-sdk/"
repository: cerc-io/laconic-sdk
fetch-depth: 0
ref: jest_timeout
- name: Environment
run: ls -tlh && env
- name: build containers scripts
working-directory: tests/sdk_tests
run: ./build-laconicd-container.sh && ./build-sdk-test-container.sh
- name: start containers
working-directory: tests/sdk_tests
run: docker compose up -d
- name: run-tests.sh
working-directory: tests/sdk_tests
run: ./run-all-tests.sh
# integration_tests:
# runs-on: ubuntu-latest
# steps:
-1
View File
@@ -50,7 +50,6 @@ coverage.txt
sim_log_file
tests/**/tmp/*
yarn.lock
x/auction/client/testutil/bidder-bafyre*
# Vagrant
.vagrant/
+1 -1
View File
@@ -20,7 +20,7 @@ RUN make build
FROM alpine:3.17.0
# Install ca-certificates
RUN apk add --update ca-certificates jq curl
RUN apk add --update ca-certificates jq
WORKDIR /
# Copy over binaries from the build-env
-178
View File
@@ -1,178 +0,0 @@
# Validator Upgrade Guide for laconic_81337-5 Testnet v0.6.0 -> v0.7.0
This guide assumes you have followed the instructions to crete a systemd service or docker container validator node v0.6.0 and you perform the upgrade on a machine running v0.6.0
It is highly recommended to make the backup of your datadir after you stop v0.6.0 and before you start v0.7.0. Unless you changed your datadir, it should be located in `~/.laconicd`
## Systemd service
Skip this section if you use docker
This is very similar to building v0.6.0. We keep v 0.6.0 running until v0.7.0 is built and only after the successful build we should replace 0.6.0 binary with v0.7.0. This is to avoid jailing your validator for long downtime.
The general upgrade plan is the following:
1. Install Go v1.19.5 (we used 1.18 for v0.6.0)
2. Remove old copy of the github repository and build directory
3. Download the latest laconicd repository and checkout v0.7.0
4. Build laconicd binary (but not install in this moment)
5. Stop laconicd systemd service
6. Install recently built new version of laconicd
7. Start laconicd service
>***You have ~10 minutes after step 5 to complete steps 6 and 7 before your validator is jailed for downtime. Getting jailed for downtime is not a disaster, however would require manual unjailing.***
### Install Go 1.19
```sh
# Update Ubuntu
sudo apt update
sudo apt upgrade -y
# Install required software packages
sudo apt install git curl build-essential make jq -y
# Remove any existing installation of `go`
sudo rm -rf /usr/local/go
# Install Go version 1.19.5
curl https://dl.google.com/go/go1.19.5.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf -
```
Check the version of go installed
```sh
go version
# Should return something like: go version go1.19.5 linux/amd64
```
---
### Remove old copy of `laconicd` build
>Attention should be paid that the directory mentioned below is `~/laconicd` and NOT `~/.laconicd`. The latter is the data directory containing all your node data and configuration and it must be kept during the upgrade.
```sh
# Remove the previous build directory
cd ~
rm -rf laconicd
```
---
### Download `laconicd` repository
```sh
git clone https://github.com/cerc-io/laconicd.git
cd laconicd
# Checkout 0.7.0 branch
git fetch --all
git checkout v0.7.0
```
---
### Build the new version of `laconicd`
```sh
# Build laconic (but not install at this moment)
make VERSION=v0.7.0 build
```
---
### Stop `laconicd` systemd service
```sh
sudo systemctl stop laconicd
```
>***Make sure the service is stopped***
```sh
sudo systemctl status laconicd
```
---
### Install new `laconicd` version
```sh
make VERSION=v0.7.0 install
```
Verify your installation
```sh
laconicd version
```
This should return `0.7.0`
---
### Start `laconicd` systemd service
```sh
sudo systemctl start laconicd
```
Verify that the node joined the network and produces new blocks
```sh
journalctl -f -u laconicd
```
---
## Docker container
Upgrade plan:
1. Stop running v0.6.0 container
2. Delete v0.6.0 container
3. Create v0.7.0 container
4. Start v0.7.0 container
>***You have ~10 minutes to complete the upgrade procedure before your validator is jailed for downtime. Getting jailed for downtime is not a disaster, however would require manual unjailing.***
### Stop running v0.6.0 container
```sh
docker stop laconic-testnet-5
```
---
### Delete v0.6.0 container
```sh
docker rm laconic-testnet-5
```
---
### Create v0.7.0 container
```sh
docker create --name laconic-testnet-5 \
--restart always \
-v ~/.laconicd:/root/.laconicd \
-p 26656:26656 \
-p 127.0.0.1:26657:26657 \
-p 127.0.0.1:26660:26660 \
git.vdb.to/cerc-io/laconicd/laconicd:v0.7.0 \
laconicd start --gql-playground --gql-server --log_level=warn
```
---
### Start v0.7.0 container
```sh
docker start laconic-testnet-5
```
Verify that the node joined the network and produces new blocks
```sh
docker logs -f laconic-testnet-5
```
---
-1
View File
@@ -47,7 +47,6 @@ WORKDIR /app
RUN \
git clone https://github.com/cerc-io/laconic-sdk.git \
&& cd laconic-sdk \
&& git checkout auction_nameservice_tests \
&& yarn install
WORKDIR /app/laconic-sdk
+1 -4
View File
@@ -2,14 +2,11 @@ services:
laconicd:
restart: unless-stopped
image: cerc-io/laconicd:local-test
environment:
- TEST_AUCTION_ENABLED=true
- TEST_REGISTRY_EXPIRY=true
command: ["sh", "/docker-entrypoint-scripts.d/create-fixturenet.sh"]
volumes:
- ../../init.sh:/docker-entrypoint-scripts.d/create-fixturenet.sh
healthcheck:
test: ["CMD", "curl", "-v", "http://127.0.0.1:6060"]
test: ["CMD", "wget", "-nv", "-t1", "--spider", "http://localhost:6060"]
interval: 1s
timeout: 5s
retries: 30
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
set -x
fi
# Get the key from laconicd
laconicd_key=$( docker compose exec laconicd echo y | docker compose exec laconicd laconicd keys export mykey --unarmored-hex --unsafe )
# Set parameters for the test suite
cosmos_chain_id=laconic_9000-1
laconicd_rest_endpoint=http://laconicd:1317
laconicd_gql_endpoint=http://laconicd:9473/api
# Run tests
docker network inspect sdk_tests_default
sleep 30s
docker compose exec sdk-test-runner sh -c "COSMOS_CHAIN_ID=${cosmos_chain_id} LACONICD_REST_ENDPOINT=${laconicd_rest_endpoint} LACONICD_GQL_ENDPOINT=${laconicd_gql_endpoint} PRIVATE_KEY=${laconicd_key} yarn test"
docker compose exec sdk-test-runner sh -c "COSMOS_CHAIN_ID=${cosmos_chain_id} LACONICD_REST_ENDPOINT=${laconicd_rest_endpoint} LACONICD_GQL_ENDPOINT=${laconicd_gql_endpoint} PRIVATE_KEY=${laconicd_key} yarn test:auctions"
docker compose exec sdk-test-runner sh -c "COSMOS_CHAIN_ID=${cosmos_chain_id} LACONICD_REST_ENDPOINT=${laconicd_rest_endpoint} LACONICD_GQL_ENDPOINT=${laconicd_gql_endpoint} PRIVATE_KEY=${laconicd_key} yarn test:nameservice-expiry"
docker logs sdk_tests-laconicd-1
-6
View File
@@ -9,10 +9,4 @@ cosmos_chain_id=laconic_9000-1
laconicd_rest_endpoint=http://laconicd:1317
laconicd_gql_endpoint=http://laconicd:9473/api
# Run tests
docker network inspect sdk_tests_default
sleep 30s
docker logs laconicd
docker compose exec laconicd sh -c "curl http://127.0.0.1:9473/api"
docker compose exec laconicd sh -c "curl http://localhost:9473/api"
docker compose exec sdk-test-runner sh -c "COSMOS_CHAIN_ID=${cosmos_chain_id} LACONICD_REST_ENDPOINT=${laconicd_rest_endpoint} LACONICD_GQL_ENDPOINT=${laconicd_gql_endpoint} PRIVATE_KEY=${laconicd_key} yarn test"
+10 -15
View File
@@ -7,29 +7,24 @@ import (
func TestAndValidateCIDGeneration(t *testing.T) {
testCases := []struct {
name string
content string
expected string
name string
content string
}{
// empty string and empty json blows up
// {
// "empty string", "", "bafyreiengp2sbi6ez34a2jctv34bwyjl7yoliteleaswgcwtqzrhmpyt2m",
// },
// {
// "empty json", "{}", "bafyreihpfkdvib5muloxlj5b3tgdwibjdcu3zdsuhyft33z7gtgnlzlkpm",
// },
{
"empty string", "",
},
{
"empty json", "{}",
},
{
"test record", "{\"build_artifact_cid\":\"QmP8jTG1m9GSDJLCbeWhVSVgEzCPPwXRdCRuJtQ5Tz9Kc9\",\"repo_registration_record_cid\":\"QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D\",\"tls_cert_cid\":\"QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR\",\"type\":\"WebsiteRegistrationRecord\",\"url\":\"https://cerc.io\",\"version\":\"0.0.1\"}",
"bafyreiek4hnoqmits66bjyxswapplweuoqe4en2ux6u772o4y3askpd3ny",
"test record", "\\xa6curlohttps://cerc.iodtypex\\x19WebsiteRegistrationRecordgversione0.0.1ltls_cert_cidx.QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnRrbuild_artifact_cidx.QmP8jTG1m9GSDJLCbeWhVSVgEzCPPwXRdCRuJtQ5Tz9Kc9x\\x1crepo_registration_record_cidx.QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D",
},
}
for _, tc := range testCases {
deprecatedAndCorrect, _ := CIDFromJSONBytes([]byte(tc.content))
newImpl, err := CIDFromJSONBytesUsingIpldPrime([]byte(tc.content))
require.NoError(t, err)
newImpl, _ := CIDFromJSONBytesUsingIpldPrime([]byte(tc.content))
require.Equal(t, deprecatedAndCorrect, newImpl, tc.name)
require.Equal(t, tc.expected, newImpl)
}
}