![]() ![]() 5 GB more RAM than hack and grow separately, but that isn't even an order of magnitude. The signal is just the presence of a certain file on the home computer. if you have bought servers manually, or grown your home server's RAM). You can also run a small script called "signal.script" to manually reschedule (e.g. The signal can come from either the spider, when it gains enough strength to hack a new server, or the watcher, when a server has been sufficiently weakened (or, soon, grown). My current stance is to use one weaken worker per six flexihack workers, which seems to be about as much as is required to keep up with either six grow threads or six hack threads. We also schedule a small group of flexihack workers on any totally weakened target, even if it's not the most optimal one, so that we can at least have some income from hacking early on. I found the task of balancing grow and hack calls tedious, so my flexihack worker calls grow and hack adaptively (when the available money drops below 95% of max, grow is called). We try to schedule these backwards in the targets list, focusing on the highest growth servers first. The second priority is to schedule "flexihack" workers. It also spawns a small watcher script to notify the distributor when a node like this has been weakened down to the minimum level.Ĭurrently, I only do this preparation step for security level, but I should probably also grow servers before beginning to hack them. If it encounters any that are significanly more secure than their minimum security level, it will dedicate as many threads as possible among all the hosts to weakening that server. It iterates through the targets in the order the spider observed them (i.e. The first priority is to focus on weakening the weakest pending node. The new worker scheduling algorithm currently has two basic priorities. We'll be able to spend more time thinking about algorithmic improvements if we don't have to do fiddly things like managing state. Cancelling all our existing workers has some minor drawbacks in terms of performance, but what it wins us in simplicity dominates such considerations. Netscripts programming capabilities are some of the most challenging and inconsistent I've ever worked with, so I want to write as little complex code as possible. We cancel all existing workers because it is easier to solve this problem if you don't have to keep track of state. awaits a signal that something material has changed.cancels all existing distributor controlled workers,.The distributor is the most interesting part. It stores the hacked node list in a newline separated file, so that other scripts don't have to invoke a function or spend precious CPU time reconstructing the list. It uses a breadth first search across the nodes starting from home, hacking any nodes we have the capability to. The spider is very straightfoward, as you will see below in spider2.js. A distributor to coordinate work among the available owned servers.I designed a system with three main components: Minimize RAM usage (scheduling overhead of around 30GB). ![]() Allocate resources toward the most efficient available task, subject to some allowances for early progression.Weaken and grow first, before beginning to hack.Allocate resources from one server to work on another.What are we maxmising or minimising.for the hacknet simulation I suggest that it should be the pay back time. The first step in deciding the strategy is determinng what metric one is lookng at. The key is determining how far to go before the reward diminishes.there are a number of strategies suggested throughout the web, but the beauty of scripting is that you can get better strategies. The cost of doing each of these things and the reward changes as one purchases more. However on a small analysis I realised that might not be the most appropriate strategy.Įssentially with the hacknet you can do 4 things, you can upgrade the three components (Level, Ram, or Number of cores), or buy a new node. Initially, I simply upgraded each node to the max and moved on. The hacknet are a series of virtual computers that raise funds through rent, which garner more rent the more powerful they become. This is a quick walkthrough of my scripts to control the hacknet aspect of the game. One of my most overlooked technologies is javascript. Despite being a web developer most of my focus tends to be in the backend, APIs and DevOps. One of the best bits is that it includes and even encourages one's programming skills. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |