Skip to content

Commit

Permalink
chore: updated history and security
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidMinarsch committed Jan 26, 2022
1 parent 88bd1cb commit 4a56320
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 9 deletions.
12 changes: 12 additions & 0 deletions .spelling
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,18 @@ open_aea
ethereum
EIP1159-style
Valory
Microtransactions
my_first_aea
output_file
AgentContext
SkillContext
DecisionMaker
ABMs
meso
anymore
echos
config
fetch.ai.
- docs/language-agnostic-definition.md
fetchai
protocol_id
Expand Down
24 changes: 19 additions & 5 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,30 @@
# Release History - open AEA

## 1.4.0 (2022-01-26)

AEA:
- Exposes agent data directory on skill context.
- Adds support for environment variables loading from aea-config files.
- Extends contract base class to support new plugin functionality.

Plugins:
- Adds support for transaction preparation and log retrieval into the ethereum plugin.
- Adds support for retrieving the revert reason when transaction is not verified in ethereum plugin.

Docs:
- Simplifies documentation further and updates with latest features

## Plugins patch (2022-01-15)

Plugins:
- Bumps open-aea-ethereum-ledger to `1.3.2` after adding tip increase logic
- Bumps `open-aea-ethereum-ledger` to `1.3.2` after adding tip increase logic

## Plugins patch (2022-01-05)

Plugins:
- Fixes dynamic gas pricing on open-aea-ethereum
- Improves daemon availability check in `IPFSDaemon` on open-aea-cli-ipfs
- Bumps open-aea-cli-ipfs and open-aea-ethereum-ledger to `1.3.1`
- Improves daemon availability check in `IPFSDaemon` on `open-aea-cli-ipfs`
- Bumps `open-aea-cli-ipfs` and open-aea-ethereum-ledger to `1.3.1`

Docs:
- Removes reference to fetch.ai.
Expand All @@ -24,8 +38,8 @@ AEA:

Plugins:
- Adds support for EIP1559 based gas estimation strategy on aea-ledger-ethereum.
- Adds support for package hashing and local ipfs registry on aea-cli-ipfs.
- Bumps aea-ledger-ethereum and aea-cli-ipfs to `1.3.0`.
- Adds support for package hashing and local IPFS registry on `aea-cli-ipfs`.
- Bumps `aea-ledger-ethereum` and `aea-cli-ipfs` to `1.3.0`.

Docs:
- Applies new styling
Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ The following table shows which versions of `open-aea` are currently being suppo

| Version | Supported |
| --------- | ------------------ |
| `1.1.x` | :white_check_mark: |
| `< 1.1.0` | :x: |
| `1.4.x` | :white_check_mark: |
| `< 1.4.0` | :x: |

## Reporting a Vulnerability

Expand Down
4 changes: 2 additions & 2 deletions docs/agent-oriented-development.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,13 @@ This uncertainty poses a challenge to the agents, who, since they cannot blindly
## Asynchronous task execution


A system of self-interested agents favors a design that allowed for asynchronous execution, such that agents can express behaviour independently each other.
A system of self-interested agents favours a design that allowed for asynchronous execution, such that agents can express behaviour independently each other.

**Asynchronous programming:** Generally speaking, asynchronous programming allows the decoupling of the tasks that the agents carry out via concurrent processing. This leads to uncertainty regarding the behaviour of the system, since the order of code execution will vary. For example, suppose an agent `i` sends a message requesting some resources from an agent `j`. Since agents are distributed, there is uncertainties associated with the communication over a network: `j` may never receive `i`'s request, or may receive it after a long delay. Furthermore, `j` could receive the request in time and respond immediately, but as mentioned in the last section, its answer might be incomplete (gives only some of the requested resources), uncertain (promises to give the resources, but cannot be fully trusted), or incorrect (sends a wrong resource). In addition, since agents are self-interested, `j` may _decide_ to reply much later, to the point that the resource is no longer useful to agent `i`, or `j` may simply decide not to respond at all. There is a myriad of reasons why it may choose to do that. The take away is that agents' autonomy strongly influences what can be expected of them, and of an environment inhabited by them. This makes developing applications for systems whose constituents are autonomous fundamentally different from conventional object-oriented systems design.

**Objects vs agents:** In object-oriented systems, objects are entities that encapsulate state and perform actions, i.e. call methods, on this state. In object-oriented languages, like C++ and Java, it is common practice to declare methods as public, so they can be invoked by other objects in the system whenever they wish. This implies that an object has no control over access to its attributes or the execution of its methods by other objects in the system.

We cannot take for granted that an agent `i` will execute an action (the equivalent of a method in object-oriented systems) just because another agent `j` wants it to. We therefor do not think of agents as invoking methods on one another, rather as _requesting_ actions. If `i` requests `j` to perform an action, then `j` may or may not perform the action. The control structure of these systems in different and can be summarised with the following slogan (from <a href="https://www.wiley.com/en-gb/An+Introduction+to+MultiAgent+Systems%2C+2nd+Edition-p-9781119959519" target="_blank">An Introduction to MultiAgent Systems</a> by <a href="https://www.cs.ox.ac.uk/people/michael.wooldridge/" target="_blank">Michael Wooldridge</a>):
We cannot take for granted that an agent `i` will execute an action (the equivalent of a method in object-oriented systems) just because another agent `j` wants it to. We therefore do not think of agents as invoking methods on one another, rather as _requesting_ actions. If `i` requests `j` to perform an action, then `j` may or may not perform the action. The control structure of these systems in different and can be summarised with the following slogan (from <a href="https://www.wiley.com/en-gb/An+Introduction+to+MultiAgent+Systems%2C+2nd+Edition-p-9781119959519" target="_blank">An Introduction to MultiAgent Systems</a> by <a href="https://www.cs.ox.ac.uk/people/michael.wooldridge/" target="_blank">Michael Wooldridge</a>):
>objects do it for free; agents do it because they want to.

Expand Down
6 changes: 6 additions & 0 deletions docs/upgrading.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ Below we describe the additional manual steps required to upgrade between differ

# Open AEA

## `v1.3.0` to `v1.4.0`

No backwards incompatible changes.

Plugins from previous versions are not compatible anymore.

## `v1.2.0` to `v1.3.0`

No backwards incompatible changes.
Expand Down

0 comments on commit 4a56320

Please sign in to comment.