
Research
/Security News
Contagious Interview Campaign Escalates With 67 Malicious npm Packages and New Malware Loader
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.
github.com/alijnmerchant21/forum
Forum based on ABCI++
Many thanks to the original team for brainstorming and bringing forth this idea. Their original repo can be found here
The tutorial demonstrate the use of:
main.go - The entry point of the application that initializes the ABCI application and starts the server.
app.go - The main application file that defines the ForumApplication struct and implements the ABCI interface methods.
validator.go - This file/module defines the Validator struct and methods for proposing to add or delete a user.
moderator.go - This file/module defines the Moderator struct and methods for proposing new moderators and validating the proposal.
user.go - This file/module defines the User struct and methods for adding and banning a user.
proposal.go - This file/module defines the Proposal struct and methods for preparing and processing proposals.
vote.go - This file/module defines the Vote struct and methods for voting on proposals using the Vote Extension.
On initialization, the ForumApplication struct is created with the set of validators defined in the genesis file.
A validator can propose to add or delete a user by creating a Proposal object and calling the PrepareProposal method of the Proposal module.
The proposal is then broadcasted to other validators for voting using the Vote Extension.
The ProcessProposal method of the Proposal module is called once the proposal has received enough votes.
If the proposal is approved, the User struct is updated to add or delete the user accordingly.
Validators can propose new moderators by creating a Proposal object and calling the PrepareProposal method of the Proposal module.
The proposal is then broadcasted to other validators for voting using the Vote Extension.
The ProcessProposal method of the Proposal module is called once the proposal has received enough votes.
If the proposal is approved, the Moderator struct is updated to add the new moderator.
To ban a user, a moderator can create a Proposal object and call the PrepareProposal method of the Proposal module.
The proposal is then broadcasted to other validators for voting using the Vote Extension.
The ProcessProposal method of the Proposal module is called once the proposal has received enough votes.
If the proposal is approved and the proposed user's message contains a hardcoded curse word, the User struct is updated to ban the user.
PrepareProposal - This method prepares a proposal object and sets its attributes.
ProcessProposal - This method processes the proposal object and executes the necessary action if the proposal is approved.
Vote Extension - This extension allows validators to vote on proposals and reach consensus.
Finalize Block - This method is called after all transactions have been processed in a block and finalizes the state of the application for the next block.
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.