Skip to content

AeFinderProject/aefinder

Repository files navigation

AeFinder

AeFinder is the first and currently the sole indexer deployed on the aelf blockchain that's accessible for a wide range of developers. Using AeFinder, anyone interested in building on aelf can effortlessly access a plethora of data, including transactions, addresses, contracts, and more.

AeFinder allows DApps on aelf to efficiently index and track all events generated by the execution of on-chain transactions. It enables DApps to stay synchronised to the latest info on the aelf network and ensures the delivery of accurate and up-to-date data to users. In terms of project architecture, the project is developed based on the ABP framework. It uses Orleans, which is a framework for building reliable and scalable distributed applications that can simplify the complexity of distributed computing. In terms of data storage, the project uses Grain and Elasticsearch for data storage and retrieval. Grain is the core component of Orleans and represents an automatically scalable and fault-tolerant entity. In summary, AeFinder combines the advantages of the ABP framework, Orleans, and Elasticsearch to achieve a high-performance, scalable, centralized blockchain scanning system.

Getting Started

Before running AeFinder, you need to prepare the following infrastructure components, as they are essential for the project's operation:

  • MongoDB
  • Elasticsearch 7.15.0
  • Redis
  • Kafka
  • RabbitMQ

The following command will clone AeFinder into a folder. Please open a terminal and enter the following command:

git clone https://github.com/AeFinderProject/aefinder

The next step is to build the project to ensure everything is working correctly. Once everything is built and configuration file is configured correctly, you can run as follows:

# enter the aefinder folder
cd aefinder

# publish
dotnet publish src/AeFinder.DbMigrator/AeFinder.DbMigrator.csproj -o build/DbMigrator
dotnet publish src/AeFinder.AuthServer/AeFinder.AuthServer.csproj -o build/AuthServer
dotnet publish src/AeFinder.Silo/AeFinder.Silo.csproj -o build/Silo
dotnet publish src/AeFinder.HttpApi.Host/AeFinder.HttpApi.Host.csproj -o build/HttpApi
dotnet publish src/AeFinder.EntityEventHandler/AeFinder.EntityEventHandler.csproj -o build/EntityEventHandler
dotnet publish src/AeFinder.BlockChainEventHandler/AeFinder.BlockChainEventHandler.csproj -o build/BlockChainEventHandler
dotnet publish src/AeFinder.BackgroundWorker/AeFinder.BackgroundWorker.csproj -o build/BackgroundWorker

# enter build folder
cd build
# ensure that the configuration file is configured correctly

# run DbMigrator service
dotnet DbMigrator/AeFinder.DbMigrator.dll

# run AuthServer service
dotnet AuthServer/AeFinder.AuthServer.dll

# run Silo service
dotnet Silo/AeFinder.Silo.dll

# run HttpApi service
dotnet HttpApi/AeFinder.HttpApi.Host.dll

# run EntityEventHandler service
dotnet EntityEventHandler/AeFinder.EntityEventHandler.dll

# run BlockChainEventHandler service
dotnet BlockChainEventHandler/AeFinder.BlockChainEventHandler.dll

# run BackgroundWorker service
dotnet BackgroundWorker/AeFinder.BackgroundWorker.dll

After starting all the above services, AeFinder is ready to provide external services.

Modules

AeFinder includes the following services:

  • AeFinder.DbMigrator: Data initialization service.
  • AeFinder.AuthServer: Authentication service.
  • AeFinder.Silo: Silo service.
  • AeFinder.HttpApi.Host: API interface service.
  • AeFinder.EntityEventHandler: Block data entity event handling service.
  • AeFinder.BlockChainEventHandler: Blockchain block event handling service.
  • AeFinder.BackgroundWorker: Background worker service.

Contributing

We welcome contributions to the AeFinder project. If you would like to contribute, please fork the repository and submit a pull request with your changes. Before submitting a pull request, please ensure that your code is well-tested.

License

AeFinder is licensed under MIT.

Contact

If you have any quetions or feedback, feel free to contact the team via Telegram and follow us on X for the latest updates.

Links: