Skip to content

Commit

Permalink
Merge pull request #721 from tendermint/release/v0.14.0
Browse files Browse the repository at this point in the history
Release/v0.14.0
  • Loading branch information
ilgooz authored Feb 3, 2021
2 parents f6dcc98 + 5bd633e commit b30ae61
Show file tree
Hide file tree
Showing 211 changed files with 5,735 additions and 4,056 deletions.
8 changes: 0 additions & 8 deletions .docker/Dockerfile.amd64

This file was deleted.

8 changes: 0 additions & 8 deletions .docker/Dockerfile.arm64

This file was deleted.

51 changes: 0 additions & 51 deletions .github/workflows/devices.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,60 +8,9 @@ name: Rpi
on: [push, pull_request]

jobs:
amd64:
name: amd64 docker
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2

- name: Set up QEMU
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
with:
version: latest

- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
run: docker buildx build --tag ${{ secrets.DOCKERHUB_USERNAME }}/starport --file .docker/Dockerfile.amd64 --platform linux/amd64 --cache-from ${{ secrets.DOCKERHUB_USERNAME }}/starport:amd64cache --cache-to ${{ secrets.DOCKERHUB_USERNAME }}/starport:amd64cache --push --progress tty .

arm64:
name: arm64 docker
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2

- name: Set up QEMU
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
with:
version: latest

- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
run: docker buildx build --tag ${{ secrets.DOCKERHUB_USERNAME }}/starport --file .docker/Dockerfile.arm64 --platform linux/arm64 --cache-from ${{ secrets.DOCKERHUB_USERNAME }}/starport:cache --cache-to ${{ secrets.DOCKERHUB_USERNAME }}/starport:cache --push --progress tty .

pi:
name: Starport Pi
runs-on: ubuntu-latest
needs: arm64
steps:
- name: checkout
uses: actions/checkout@v2
Expand Down
37 changes: 37 additions & 0 deletions .github/workflows/docker-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This workflow makes a 64 bit Raspberry Pi Arch Linux Image.
# It does not have the security issues mentioned here: https://github.com/tendermint/tendermint/blob/master/docs/tendermint-core/running-in-production.md#validator-signing-on-32-bit-architectures-or-arm
# Later, more devices will be supported, as well.
# The "base" is built by: https://github.com/faddat/sos
# The base image is located at: https://hub.docker.com/r/faddat/spos

name: Docker
on:
push:
branches:
- develop

jobs:
docker:
name: Starport Docker Image
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2

- name: Set up QEMU
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
with:
version: latest

- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
run: docker buildx build --tag ${{ secrets.DOCKERHUB_USERNAME }}/starport --platform linux/arm64,linux/amd64 --cache-from ${{ secrets.DOCKERHUB_USERNAME }}/starport:cache --cache-to ${{ secrets.DOCKERHUB_USERNAME }}/starport:cache --push --progress tty .
29 changes: 29 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Builds the starrport DDocker image as a test, but does not push it.

name: Docker
on:
push:
branches:
- '*'
- '!master'
pull_request:

jobs:
docker:
name: Starport Docker Image
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2

- name: Set up QEMU
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
with:
version: latest

- name: Build
run: docker buildx build --tag ${{ secrets.DOCKERHUB_USERNAME }}/starport --platform linux/arm64,linux/amd64 --progress tty .
19 changes: 19 additions & 0 deletions .github/workflows/makepkg.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: PKGBUILD CI

on: [push, pull_request]

jobs:
pkgbuild:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Makepkg Build and Check
id: makepkg
uses: edlanglois/pkgbuild-action@v1
with:
pkgdir: scripts
- name: Upload Package Archive
uses: actions/upload-artifact@v2
with:
path: scripts/*.zst
2 changes: 1 addition & 1 deletion .github/workflows/test-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
run: go get -u github.com/gobuffalo/packr/v2/packr2

- name: Set up relayer
run: git clone https://github.com/cosmos/relayer && cd relayer && git checkout 1daec66da1700c9fcd8900dbf06c70f2fd838cdf && make install
run: git clone https://github.com/cosmos/relayer && cd relayer && git checkout ba17c4db185229d9354187a8b9723097ab527261 && make install

- name: Checkout
uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-relayer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
run: go get -u github.com/gobuffalo/packr/v2/packr2

- name: Set up relayer
run: git clone https://github.com/cosmos/relayer && cd relayer && git checkout 1daec66da1700c9fcd8900dbf06c70f2fd838cdf && make install
run: git clone https://github.com/cosmos/relayer && cd relayer && git checkout ba17c4db185229d9354187a8b9723097ab527261 && make install

- name: Checkout
uses: actions/checkout@v2
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ node_modules
.DS_Store
apps/
.idea
.vscode
3 changes: 3 additions & 0 deletions .gitpod.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM gitpod/workspace-full

RUN brew install gh protobuf
13 changes: 9 additions & 4 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
image: gitpod/workspace-full
image:
file: .gitpod.Dockerfile

checkoutLocation: "starport"

workspaceLocation: "./starport/docs"

tasks:
- name: Install Starport
init: |
Expand All @@ -10,16 +14,16 @@ tasks:
export CHISEL_ADDR=$(gp url 7575)
mkdir -p $BIN_PATH
(cd /workspace/starport && ./scripts/install)
# Install Github CLI
brew install gh
# install rly
(cd /tmp && git clone https://github.com/cosmos/relayer && cd relayer && git checkout 1daec66da1700c9fcd8900dbf06c70f2fd838cdf && make -C /tmp/relayer install)
(cd /tmp && git clone https://github.com/cosmos/relayer && cd relayer && git checkout ba17c4db185229d9354187a8b9723097ab527261 && make -C /tmp/relayer install)
command: |
export VUE_APP_CUSTOM_URL=$(gp url)
export CHISEL_ADDR=$(gp url 7575)
export RPC_ADDRESS=$(gp url 26657):443
export API_ADDRESS=$(gp url 1317)
cd ./docs
clear && printf '\e[3J'
echo -e "
Expand All @@ -37,3 +41,4 @@ ports:
- port: 26657
- port: 8080
- port: 7575
- port: 4500
2 changes: 1 addition & 1 deletion .pi/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ RUN useradd --create-home starport && \


# later, update to tendermint/starport
COPY --from=tendermintdevelopment/starport:arm64 /starport/build/starport /usr/bin/starport
COPY --from=tendermintdevelopment/starport /go/bin/starport /usr/bin/starport
36 changes: 36 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Build inside lopsided/archlinux for multiplatform support
# It's an arch linux image with support for both ARM64 and AMD64
FROM lopsided/archlinux


# GOPATH AND GOBIN ON PATH
ENV GOPATH=/go
ENV PATH=$PATH:/go/bin

# INSTALL DEPENDENCIES
RUN pacman -Syyu --noconfirm go npm make git which && \
mkdir /go

# COPY STARPORT SOURCE CODE INTO CONTAINER
COPY . /starport
WORKDIR /starport

# INSTALL STARPORT
RUN PATH=$PATH:/go/bin && \
bash scripts/install

# CMD
CMD ["/go/bin/starport"]

# WE NEED BOTH NODE AND GO, DISTROLESS IS NOT THE WAY HERE. REVISIT LATER.
# Copy into a distroless image so that ONLY the starport binary remains
# FROM gcr.io/distroless/base
# COPY --from=builder /starport/build/starport /

# EXPOSE 12345
# EXPOSE 8080
# EXPOSE 1317
# EXPOSE 26656
# EXPOSE 26657

# CMD ["/starport"]
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ pre-build:
@echo "Fetching latest tags"
@git fetch --tags

build-static:
@go get github.com/go-bindata/go-bindata/...
@go-bindata -pkg cosmosfaucet -prefix starport/pkg/cosmosfaucet -o starport/pkg/cosmosfaucet/openapi_generated.go starport/pkg/cosmosfaucet/openapi/...

build: mod pre-build
@go get -u github.com/gobuffalo/packr/v2/packr2
@cd ./starport/interface/cli/starport && packr2
Expand Down Expand Up @@ -45,4 +49,3 @@ lint:
.PHONY: lint

.PHONY: all mod pre-build build ui install

25 changes: 25 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
# Changelog

## `v0.14.0`

### Features:

- Chain state persistence between `starport serve` launches
- Integrated Stargate app's `scripts/protocgen` into Starport as a native feature. Running `starport build/serve` will automatically take care of building proto files without a need of script in the app's source code.
- Integrated third-party proto-files used by Cosmos SDK modules into Starport CLI
- Added ability to customize binary name with `build.binary` in `config.yml`
- Added ability to change path to home directory with `init.home` in `config.yml`
- Added ability to add accounts by `address` with in `config.yml`
- Added faucet functionality available on port 4500 and configurable with `faucet` in `config.yml`
- Added `starport faucet [address] [coins]` command
- Updated scaffold to Cosmos SDK v0.41.0
- Distroless multiplatform docker containers for starport that can be used for `starport serve`
- UI containers for chains scaffolded with Starport
- Use SOS-lite and Docker instead of systemD
- Arch PKGBUILD in `scripts`

### Fixes:

- Support for CosmWasm on Stargate
- Bug with dashes in Github username breaking proto package name
- Bug with custom address prefix
- use docker buildx as a single command with multiple platforms to make multi-manifest work properly

## `v0.13.0`

### Features:
Expand Down
8 changes: 4 additions & 4 deletions docs/1 Introduction/1 Introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ Let us dive into Starport, what we can achieve with it, and which other technolo

Starport is a tool that makes it easier to create blockchains.

Starport uses the Tendermint Consensus engine and the Cosmos SDK to create a blockchain application in the Go programming language. This blockchain has a Proof-of-Stake system with validators (https://en.longhash.com/news/how-cosmos-governance-works-and-how-you-can-become-a-validator) that can be defined in the genesis block.
Starport uses the Tendermint Consensus engine and the Cosmos SDK to create a blockchain application in the Go programming language. This blockchain has a Proof-of-Stake system with validators that can be defined in the genesis block.

With just a few command lines, you can create a blockchain, launch it, serve it on the cloud and have a GUI ready to start testing your application.
With just a few commands, you can create a blockchain, launch it, serve it on the cloud and have a GUI ready to start testing your application.

Bootstrapping blockchains was initially the job of the `scaffold` program, which was used to create a blockchain application. Starport takes it to the next level and also creates a user interface with Vue.js, which provides a good starting point for developers creating a browser-based client-side application for your blockchain.

Expand All @@ -35,11 +35,11 @@ The following projects are using the technology:

Cosmos modules are the foundational building blocks for building a blockchain. Modules can be created and shared with anyone. Each module plugs into the Cosmos SDK. Some of the modules are core building blocks for creating blockchains, while other modules enable new features.

Many of the live blockchains use multiple Cosmos modules. The foundational modules for starport are: `auth`, `bank`, `staking`, `params` and `supply`. We also recommend adding the `wasm` or the `evm` module, this allows you to deploy Web Assembly smart contracts to your blockchain. The `evm` module enables the Ethereum EVM to be used in your blockchain. Each module comes with clear documentation and codebase. If you wanted to make changes to a specific module, you can fork the module and change what suits your use case better.
Many of the live blockchains use multiple Cosmos modules. The foundational modules for starport are: `auth`, `bank`, `staking`, `params`, `capability`, `mint`, `governance`, `crisis`, `slashing`, `ibc`, `upgrade`, `evidence` and `supply`. We also recommend adding the `wasm` or the `evm` module, this allows you to deploy - Web Assembly for wasm, Solidity for evm - smart contracts to your blockchain. The `evm` module enables the Ethereum EVM to be used in your blockchain. Each module comes with clear documentation and codebase. If you want to make changes to a specific module, you can fork the module and change what suits your use case better.

## Summary

- Starport lets you create, develop, and build a blockchain.
- Starport and Cosmos are written in Go.
- Starport and Cosmos SDK are written in Go.
- Today, Cosmos SDK has a unique position worldwide as one of the most successful blockchains.
- Developers can use different Cosmos SDK modules to customize their blockchain.
6 changes: 3 additions & 3 deletions docs/1 Introduction/2 Install.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
To install Starport:

```
curl https://i.jpillora.com/tendermint/starport! | bash
curl https://get.starport.network/starport! | bash
```

This command will download the latest `starport` binary from Github and install it into `/usr/local/bin`. To learn more about how to install previous versions of the binary, refer to the [documentation](https://github.com/jpillora/installer).
This command will download the latest `starport` binary from Github and install it into `/usr/local/bin`. To learn more about how to install previous versions of the binary, refer to the [documentation](https://github.com/allinbits/starport-installer).

## macOS with Homebrew

Expand All @@ -24,7 +24,7 @@ git clone https://github.com/tendermint/starport && cd starport && make

This will build and install `starport` binary into `$GOBIN`.

Note: When building from source, it is important to have your `$GOPATH` set correctly. When in doubt, the folllowing should do:
Note: When building from source, it is important to have your `$GOPATH` set correctly. When in doubt, the following should do:

```
mkdir ~/go
Expand Down
14 changes: 8 additions & 6 deletions docs/1 Introduction/3 Quickstart.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
# Quickstart

With `starport` installed on your machine, you can now build your very first blockchain application!
With `starport` installed on your machine, you can now build your very first blockchain!

```bash
```
starport app github.com/username/myapp && cd myapp
```

Serve the blockchain application
This command will create a directory `myapp` and scaffold a Cosmos SDK blockchain.

```bash
```
starport serve
```

Add a new transaction type to your application
`serve` will install dependencies, build, initialise and run your blokchain.

```bash
```
starport type post title body
```

`type` scaffolds functionality to create, read, update and delete for a custom type.
Loading

0 comments on commit b30ae61

Please sign in to comment.