Skip to content

Commit

Permalink
Replace paths to reference hyperledger repo (#151)
Browse files Browse the repository at this point in the history
  • Loading branch information
vdamle authored Sep 23, 2021
1 parent cc318ab commit 8545f1c
Show file tree
Hide file tree
Showing 76 changed files with 275 additions and 739 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ jobs:
- uses: actions/checkout@v2

- name: Build
run: docker build -t ghcr.io/hyperledger-labs/firefly-ethconnect:latest .
run: docker build -t ghcr.io/hyperledger/firefly-ethconnect:latest .

- name: Push
run: |
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
docker push ghcr.io/hyperledger-labs/firefly-ethconnect:latest
docker push ghcr.io/hyperledger/firefly-ethconnect:latest
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# github.com/hyperledger-labs/firefly-ethconnect
# github.com/hyperledger/firefly-ethconnect

[![codecov](https://codecov.io/gh/hyperledger-labs/firefly-ethconnect/branch/master/graph/badge.svg?token=RWlSbY389z)](https://codecov.io/gh/hyperledger-labs/firefly-ethconnect) [![Go Report Card](https://goreportcard.com/badge/github.com/hyperledger-labs/firefly-ethconnect)](https://goreportcard.com/report/github.com/hyperledger-labs/firefly-ethconnect)
[![codecov](https://codecov.io/gh/hyperledger/firefly-ethconnect/branch/master/graph/badge.svg?token=RWlSbY389z)](https://codecov.io/gh/hyperledger/firefly-ethconnect) [![Go Report Card](https://goreportcard.com/badge/github.com/hyperledger/firefly-ethconnect)](https://goreportcard.com/report/github.com/hyperledger/firefly-ethconnect)

- [github.com/hyperledger-labs/firefly-ethconnect](#githubcomhyperledger-labsfirefly-ethconnect)
- [github.com/hyperledger/firefly-ethconnect](#githubcomhyperledgerfirefly-ethconnect)
- [Ethconnect REST Gateway](#ethconnect-rest-gateway)
- [License](#license)
- [Example payloads](#example-payloads)
Expand Down Expand Up @@ -48,7 +48,7 @@ For example to allow connectivity from an Enterprise Service Bus (ESB) or other
Enterprise Application Integration (EAI) tier, or applications running in a
Java EE Application Server.

[![hyperledger-labs/firefly-ethconnect](ethconnect.png)](ethconnect.pdf)
[![hyperledger/firefly-ethconnect](ethconnect.png)](ethconnect.pdf)

## License

Expand Down Expand Up @@ -128,7 +128,7 @@ contracts and sending transactions, because it is:
Instead thick client libraries such as [web3.js](https://github.com/ethereum/web3.js/), [web3j](https://github.com/web3j/web3j), [web3.py](https://github.com/ethereum/web3.py), [Nethereum](https://github.com/Nethereum/Nethereum) and [ethjs](https://github.com/ethjs/ethjs) are used to submit transactions.
These thick client libraries perform many of the same functions as hyperledger-labs/firefly-ethconnect, simplifying submission of transactions, receipt checking,
These thick client libraries perform many of the same functions as hyperledger/firefly-ethconnect, simplifying submission of transactions, receipt checking,
nonce management etc.
In the modern world of Microservice architectures, having a simple, efficient
Expand Down Expand Up @@ -156,7 +156,7 @@ Providing a Messaging layer with at-least-once delivery and message ordering, al
Applications that have their own state stores are able to communicate over Messaging / Kafka with simple JSON payloads to stream transactions into a scalable set of Ethereum nodes, and process the replies as they occur. The application can scale horizontally. Applications can also be decoupled from the Ethereum network with an integration technology like an Enterprise Service Bus (ESB).
When spikes in workload occur that create a large queue of transactions that need to be fed into the Ethereum network at a lower rate, the hyperledger-labs/firefly-ethconnect bridge feeds them in at an optimal rate.
When spikes in workload occur that create a large queue of transactions that need to be fed into the Ethereum network at a lower rate, the hyperledger/firefly-ethconnect bridge feeds them in at an optimal rate.
### Ethereum Webhooks and the REST Receipt Store (MongoDB)
Expand Down Expand Up @@ -187,17 +187,17 @@ A capped collection can be used in MongoDB to limit the storage. For example to
The transaction pooling/execution logic within an Ethereum node is based upon the concept of a `nonce`, which must be incremented exactly once each time a transaction is submitted from the same Ethereum address. There can be no gaps in the nonce values, or messages build up in the `queued transaction` pool waiting for the gap to be filled (which is the responsibility of the
sender to fill). This allows for deterministic ordering of transactions sent by the same sender.

The management of this `nonce` pushes complexity back to the application tier - especially for horizontally scaled Enterprise applications sending many transactions using the same sender. By using an ordered Messaging stream to submit messages into the Ethereum network, many applications are able to delegate this complexity to hyperledger-labs/firefly-ethconnect.
The management of this `nonce` pushes complexity back to the application tier - especially for horizontally scaled Enterprise applications sending many transactions using the same sender. By using an ordered Messaging stream to submit messages into the Ethereum network, many applications are able to delegate this complexity to hyperledger/firefly-ethconnect.

The hyperledger-labs/firefly-ethconnect bridge contains all the logic necessary to communicate with the node to determine the next nonce, and also to cope with multiple requests being in flight within the same block, for the same sender (including [with IBFT](https://github.com/ethereum/EIPs/issues/650#issuecomment-360085474)).
The hyperledger/firefly-ethconnect bridge contains all the logic necessary to communicate with the node to determine the next nonce, and also to cope with multiple requests being in flight within the same block, for the same sender (including [with IBFT](https://github.com/ethereum/EIPs/issues/650#issuecomment-360085474)).

When using the bridge, an application can submit simple YAML/JSON formatted transactions
in a highly parallel way across many instances using the same sender address to the bridge
over HTTPS/Kafka _without_ a nonce. Then through ordered message delivery and nonce management
code within the hyperledger-labs/firefly-ethconnect bridge it will be assigned a nonce and submitted
code within the hyperledger/firefly-ethconnect bridge it will be assigned a nonce and submitted
into the Ethereum node. The nonce assigned is returned by the bridge in the reply.

If a sender needs to achieve exactly-once delivery of transactions (vs. at-least-once) it is still necessary to allocate the nonce within the application and pass it into hyperledger-labs/firefly-ethconnect in the payload. This allows the sender to control allocation of nonces using its internal state store / locking.
If a sender needs to achieve exactly-once delivery of transactions (vs. at-least-once) it is still necessary to allocate the nonce within the application and pass it into hyperledger/firefly-ethconnect in the payload. This allows the sender to control allocation of nonces using its internal state store / locking.

> There's a good summary of at-least-once vs. exactly-once semantics in the [Akka documentation](https://doc.akka.io/docs/akka/current/general/message-delivery-reliability.html?language=scala#discussion-what-does-at-most-once-mean-)

Expand All @@ -224,12 +224,12 @@ trivially. Some examples as follows:
## Why Kafka?

We selected Kafka as the first Messaging platform, because Kafka has message ordering and scale characteristics that are ideally suited to the Ethereum transaction model:
- Transactions can be sprayed across partitions, while retaining order of the transactions for a particular sender. Allowing independent and dynamic scaling of the application, hyperledger-labs/firefly-ethconnect bridge and Go-ethereum node components.
- Transactions can be sprayed across partitions, while retaining order of the transactions for a particular sender. Allowing independent and dynamic scaling of the application, hyperledger/firefly-ethconnect bridge and Go-ethereum node components.
- The modern replication based cloud-native and continuously available architecture is ideal for Hyperledger projects, and is likely to be a good fit for the modern Microservice architectures that are common in Blockchain projects.

## Topics

[![hyperledger-labs/firefly-ethconnect - Topics](ethconnect_topics.png)](ethconnect.pdf)
[![hyperledger/firefly-ethconnect - Topics](ethconnect_topics.png)](ethconnect.pdf)

The topic usage is very simple:
- One topic delivering messages into the bridge
Expand Down Expand Up @@ -320,7 +320,7 @@ blockchain.
Requires [Go 1.11](https://golang.org/dl/) or later to install with `go get`

```sh
go get github.com/hyperledger-labs/firefly-ethconnect
go get github.com/hyperledger/firefly-ethconnect
```

## Development environment
Expand Down
8 changes: 4 additions & 4 deletions cmd/ethconnect.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ import (

"gopkg.in/yaml.v2"

"github.com/hyperledger-labs/firefly-ethconnect/internal/errors"
"github.com/hyperledger-labs/firefly-ethconnect/internal/kafka"
"github.com/hyperledger-labs/firefly-ethconnect/internal/rest"
"github.com/hyperledger-labs/firefly-ethconnect/internal/utils"
"github.com/hyperledger/firefly-ethconnect/internal/errors"
"github.com/hyperledger/firefly-ethconnect/internal/kafka"
"github.com/hyperledger/firefly-ethconnect/internal/rest"
"github.com/hyperledger/firefly-ethconnect/internal/utils"
"github.com/icza/dyno"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
Expand Down
6 changes: 3 additions & 3 deletions cmd/plugins.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ package cmd
import (
"plugin"

"github.com/hyperledger-labs/firefly-ethconnect/internal/auth"
"github.com/hyperledger-labs/firefly-ethconnect/internal/errors"
"github.com/hyperledger-labs/firefly-ethconnect/pkg/plugins"
"github.com/hyperledger/firefly-ethconnect/internal/auth"
"github.com/hyperledger/firefly-ethconnect/internal/errors"
"github.com/hyperledger/firefly-ethconnect/pkg/plugins"
log "github.com/sirupsen/logrus"
)

Expand Down
3 changes: 1 addition & 2 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module github.com/hyperledger-labs/firefly-ethconnect
module github.com/hyperledger/firefly-ethconnect

require (
github.com/Shopify/sarama v1.29.0
Expand Down Expand Up @@ -31,7 +31,6 @@ require (
github.com/ulikunitz/xz v0.5.10 // indirect
github.com/x-cray/logrus-prefixed-formatter v0.5.2
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
golang.org/x/net v0.0.0-20210525063256-abc453219eb5 // indirect
golang.org/x/term v0.0.0-20210503060354-a79de5458b56 // indirect
gopkg.in/yaml.v2 v2.4.0
)
Expand Down
Loading

0 comments on commit 8545f1c

Please sign in to comment.